From 2f3c77fb385b414590ed1b799eac3d5fed062a39 Mon Sep 17 00:00:00 2001 From: dabreegster Date: Fri, 17 May 2024 17:50:12 +0000 Subject: [PATCH] deploy: b3a2f81d1d68e05626ee7749c8ce3f2c09cd3b50 --- assets/backend_bg.wasm | Bin 997743 -> 1015627 bytes ...{index-ed0d182d.css => index-1ce6f1c9.css} | 4 +- assets/main-382b89ca.js | 665 ++++++++++++++++++ assets/main-788edba2.js | 662 ----------------- index.html | 4 +- 5 files changed, 669 insertions(+), 666 deletions(-) rename assets/{index-ed0d182d.css => index-1ce6f1c9.css} (54%) create mode 100644 assets/main-382b89ca.js delete mode 100644 assets/main-788edba2.js diff --git a/assets/backend_bg.wasm b/assets/backend_bg.wasm index 6b8a5b0915235d8826d7c6856bc3cbb57b4d4637..2540fad68783fb2a9c99506445ba8a986eb23884 100644 GIT binary patch literal 1015627 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

$U9Fv)C3}5zf0(LRCqk4@^%J@Was@?@ zFc#g#RhzyFf66LAtm6B9k)Cv|qB3ESNN;7Q98WC*CI%^P!my`IbAE*PQ%$N8hJ zX_uvz=0;c-4BliS*@>9a;8&}xR3xf1=~;q_N2I`}<1r8rgXH17eD_yQ%dhN4<5QsOn�b!9dk1Nn3R_V|vC)3W9GuT0oyso~l{X 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

fpj@=`!?a)iJcc?Dc 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 z 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 H66N(#4hXzQdZrSm% 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%0AS;p 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 ?} z6e?EeD@&7b)oE7$6UU6C*#FT46S2picI(T&9A$}?)!%BC9vll*zpOi3$f93A|938< z7uGL6&a;0qgFWeMKh2evufKUH+wB371^ntrBK39azxvhR`Q?NO3rm~Nvu?`wdQxYy zZ~8J!t2Lx$@Z4lUGC5s91Rwc^RgyGmmba$tT%bM>JK^gxHox7ieHr^ zQio&8PU@%&{`b}o>0pKC_Dyb+ZJ!Wog)uOGqB5=9H}na|1AUp=3Y}?;`>32S@Vk<0 zC+AAZ4TF$HJ+wOwb7{k0OOAWY$3OqJfoNYG5htp>qY-)cnh|M$*BX%nVQPR^84*@P zjR@AL5!v1Kjfg|)->(t9Jsi#Zh&V?@BeJ{e8xc0%cQhi=%)6sHL+h2PZox;i;3KlT zYm8{eDH9$tWwy_w=}EB@32mE498g6_3%l14*7J_PfTYb8+MG$d3^F>nh_{C*o#=+c{_*u zdiVgH*-m5Efe|0+^rXH9MjVOLz=1b5oNXE-oP1^uX3p;HE&*F{loqc%ji$h>$M4^W zoDVc3x(1DneME>tA=K`!Z$yjla6~(?scYb9Cj!1Qjuw4Hi#{T|yS@?adWR!=2Yle| zjR?ObQQa;dk=*p9dk7IJqsyyJ1^SU|xJ>t$kX>JYO(=z$=qh<}8U3zGD+Q*E%+9VS0!mUQbi0J2a zj%d1jPFhX(jI<`;3L_#ZB<7Im5jD3vjL1^e1st)}s}bQCtr6MXwh`eBy?sRV^EyX# z)$Z+#BTge_mobjWfzaIg{FVDHHP*VqFLeUxwt?=}{7keh zc(UVZ4Ozo-;N$s86>nUp*}kM?_D*d7L-qR!+e1^cylTn)1cx z7kKmKNo{X&Xtgm4LY5P6hxL%!(Q($hya%s`H=zfdBT_8-n^&jbaO#LJQ4`tD+P&tC zlESnn_R4tE>cNRk>APz2wyE}S!5r?-Z=jFB`xwcWezpQ={O=2H%)-U}7g>pGi;TQ0 zb2=r(m&Mw*!V3(mgm#L#pc{sE>|S!_XXEYFuhT?dCkj6P>v12s!xDM?TP(?U`r@*G zp?4SU5+8j=P`~iM@%eYOqUXd9`Iq79e*P;!{;~VnQ zvn6t-y$5SZQBgFsP-7D)l>GxwG)#iBlAHCXG31!V8SBj$b8oZ}$w1dw>}Rz#e3UP5 zgK&k-XaYiUHw(&fL|>~s`?0~Wa~Uc)vMu^(l~$MJM5#_ilO22_bV?4fW^XD#2*@ZR z6JU8070Ww9)`($olYTglRX?Mq-xEMUvd8k{yq(kWArmC9E4c+r=E%7NVuTK+0f@om zAqrrzDa7DpxE(PDURlG`p9o$>iA0Es78^$<+rbZrkwLH7rimy$ZaV=@`N^;hF~Vy= z3>Mre#E`7Y5yM4;7&h)~JJ%2+!_9WYMEWtr2w-$7TKrmwfnJ15Ly+0{u7seGBdF^L znh@4PML>+IZi$iLW@>5=k_vz&sHvTfzJE)7!-5NX7oj{YA>! z_FRQi6S@UKIS2TJyk|u*+NcgvRz6ouf|98?;><0csN`$O{r0$0Et}=x8gnlD{6>J~ zk)jJp;VH-DM&K1k*w{WGzm?VE@CJVlGGE6W(LHYSo9)+{74|io2l}jF{&U5b92qB2 z6=MRNizBclFptT1p7MkpfJWOci56h|3XFWmZ1hD-s~s7=7`;`fflr9Cl@A#l%#$Fn zH8Wu|%3aL5QkC2GW3-&3z*yzSF%Uvo9FZEP%EY-3%KkJRJkC*Q_}PoXKTv!?UhM2Z zio}-{q=z?+uJ`I1Ll%vdKulFmSesj~HH>J-CRc1|&bqqJ#!gaHSNM=FHXm{lX7~^` z`02uWb*wn%y&4rTWctD3vv^Ic7st+2H{e*WM`U26g+o_p;hJ3|xF`bf#?XEXfDKpJ zQ^dDB^lldh@1w;B&Qv$9;XJ|N@&y-=l64e;yq8|b?sA$9-St)pm+|dsXJo$jsUF8& z(8XqhFyKA94vOzN#CHavA=p5u?t<7AlO^;;k&hg5Ki@z*R&*6e9W^Af8y+Dwq2q?s zT9Arwuha?9rg=iHTp-aR;P_pHzk1~LCpag?x9<%kK0X?Y_9Xn`Cf81|watDzV)cX8 z0R-bDIJ@tBci#E#VzWPD!6zo1Z~+X0aST%|1{$;>VD4Q~LBb+M*ieGq>V}4HJyt;^ z5u+CN6!GmgY%Ci|$iK+YF~1cZ5iUEUBff3W5qIg?Otk)}7m<$lG<3YJ7fS3ru%0k? z0(9p2G>*_P5OFWJQU)B`jy*f>hzxiV8v##*$ppB}JDvtx@q}46l;|~hLPO^8(faZq zMA-%to=8jjn%3WF-W@cl#%4RbseY|_jJ!hFg~x9+k2wrXk12ZL-^ALP3iV@CcbA$w zh3P)q+`XT~igT9+dbw#_-TX##r;feW+^OUn&7Iy|_h1~MDb7e;s$bEab~TCZNd3-AYAxg2%Ztn#=C1UqS`bp6Amy zvgesU#B%5YZo0dhBAGDQPI zt2UjwBmJMha3L52-s7|{)13WYv?f6OiSXqUX`;yg#6b2M4|IP!3_MWla9mQU4 zqmvq6KMLE3xhbfkm75|5yJhP7RXik8ij69bt;FRAj%2DVt;uH4VL5u#4oFAoMTzUD1}I43OCnI<1hl*KrEfTmYm$IE2`S*9)4L$rp4#JV!mY<8_K4`Ul_f(Y14H}l zMlyR|M>Cv|(;S2t8`+YzK~0FMs0qv2fJsY~tXX>CU@qjY)czf z9MpI}3Y@TwivT{!25TLq#nQoo>BK|I0gprTBA|VC1AYvWMp9=aRabFm=BSNAhY0Q~ zSLIlomOU=_^2jprOAllWUdbve{S7=&Ruwq9_e`}cUt&IaK(n7F>~Qkf9?wbg6F**U z+EXl$w*}JZsy8>w)1l5rCmp)12nc3YPFk5vwZ2Bc^rU@qz!!aNCLWWjC^EhfA9_|#Gts>XKakqz|D=5}`T?$KkhZ6GP)>&>k_#xI zI1Q!s4;Y74@*7S~p)+SX9C!@(K!3&;o%7wY6R=~LfDakUgOPaH!s@;B7sq&I1!guv zxiTOykv3`ec4kEo15~@Ec7}q7o;N~yg@H<|Q>Ii%j~Z#hVlin#U@F-$L1^h6F`N;x zm1VYAHB39ph+5yQLlbEz1wmqKX8g^LF2>*C%rFarFiK!ttnSr=!puQbCK#CN%sA+y zDlQTQLs-NIp-Q)7yEksJ6Cg~qa)g~`gJv=yzFYe-Y|J&?HoFzfK>aaPMs*gWg`sZe zZW|}Yr-|J4^bvHao-?CtpD1)|S2ZO0k;YD(9?g(+5HQ;Sy4M`Q-NN4iYl3-6qK;$TR{j}ga_ zVRWN>{5v4SrVxO?t|^3yE~>P@SLysVJVYBy--w9WEhAIT}zZ4s}AxX$%V% zwly;LM4vh`2$%DM8s954Y9!j*UHK7D(jU%R`X=%+R71&MATg>ftL>evvmXEZdIY@0t>O7UYkjP962CjR2C4A(bX=2bKg4 z#+K--3rOs>fMHG_F-pLrQQARPy8#d;WLH1tTO+mS19r1GX%$~X8!ZmVnmF?|Xrfg4 zRKavqXoHsxC3ad4$8q=`vg@7l=RSJ3xwN1A;CUV%()^6K*&eu_0Sq6%Mo6b7y$E2~ zQi-Wb6DSDNTJ``6kq7)qhkk%{;)ZWdY}M)+0QN#Lupgd5Zp4Aji45Jg10-pyVUgGs zI8vg{#AFvpXlq-4T1v9IkaK=cmVnPafLWi`*mICB5nGBL{djZp62rO9n9@u83`2V` zCSk~?uB`bknlRNxTz2(*TQ7}dv?#Z|BQehA7U=pvVOrZVZa*s9{1dYg38vk9Qoiu(XSrx(F;f&&Y{Wk&)O!T=|1 z()cq)V}p}&0V&=l{Fl_&pPe<(%Xz~J(O zKLvvl6R!X6Kf0XMKl$_g>5U)nRGH+VY8r^PnDF8o1GTHh)dOMx)GmYecJ)Z@@@wth zq-O1{+SBTUeQwoIKc!asinrH-(Edo6x+sznAS z4;JfhZC%~keJDbBR3AHn+}08N?sxv1Z_a!;jH07as7r91@t+4iZ?|{T@L-sPZ76v} zgvvJrmBIS~6>uO8;=KWfj{2lROeX3tmQKcT0GAxTaNY3q4X|Hk4 z5JAqVPgWrDFJaWeihaq%u`h=k^&c2LBPpDa#je0K)hZ?>F|6C!i{vTrtjslLL_3To zFFQgYKe;TZD0>jB%P^fAir)T+GJ>O7?=ZHEPAa8!06N(TNF-FFk4!2;>cRW z0n;(!fY})fz-1^fxxx59qW{1?<6qD+p)zn&bk>jr9idCAeOl%KQ0h>Z6&S1&L_tp2 zj)V(3CTfAV2Yi86aJB=+bfSQ)Jj9W;G1j4S5Xw?ThNU8BeF54;@FDGjBxRpRM7q)k z+6Rd`WF8F;JBca+#T@{1!x&?!rM`vkN;souNLw9O1G6S>M!m549 z`9JhgGrKDkSl={1^{8Z3&M%X7qc+sqTbDDD!EHq@@C(Sb>X~E!M%6c`GT8Ljqf)b0 z)#D#y7-kErjbY}&P*C4Vh%mUf&s5w7c3y1dUiURL86`RS7;GBBg3IOj8Hq`@Vv&#N z>Xa>5@@AYj!2!A&2;iu{pPof_j?#Us`fE0hnnKv6RA^{&ypl_w_zfp43Amc4HhMiO zMNb-i9)N3aqfnhl5$J)#UnE7c)+C~~D}Y7iue)Ibd(*IJj}0m2lrdHlV%QJYvvojo zlX$_T2X+$c4$_@b5evD2zVr)h5M*eJnxs@oHN>_E$bN1j3{yAzRjncv6O}7) z?KbjwxS%+uGs8@?79Jg@Q;Wx=e>jh~ch{Ii*@O+6N@T3vx@!Cb2s4LZAqg!9R!_Cg zL6kbwSp8L5huC;z_S#)+G5ZdzgV%yVi`8SlXoh8Lj%f9PKRBzmoTb-4Mz{)0$yoi> zIea8(My*40>tFqcmlJ69e`39BWT1yzr}~7C>#a^!p@@k6ZB6xAW9E|GzECEB)li?b zcscg$_k@=V*v89^H|~rOo#{upcg@Swh|6n`;e?k%;HD!ma>yM4e|3}@(BBRF-U+7@ z_WiDL3T>M}+KErWC5+-^nD)uXT2({@mw+pXh)lPK#GGU5kt7aW^_e1GCkfd!*{~{h|9x?v1RakNB9zz>=StZ(RrED> z*nY3RcdgMq~i@2eu9nPg_G$Qiv_;I-a~$cpVfLFzozUg#(_=xA?2%1`G7U7Toy3DbidKa1RfNq3soFHPNjt+`XlXQu9+Z0_{kcjF!7KO*Cm#9ztUW~YC=ECeG- z1;Dz5MGmlHhmK&)cLJ-4OsxUT7e>~+>}`P+TwD>TO36kh1wm(C&|!{kfv#fRcZROO zie|t+@T&`ml3e#KZgv32ppc9daA4VX*x2n_3!hT&?gpDvSt|fXg zID8_^2ayZ`PewB9*?nHhNrwz>;^^54#wRK;+n|u{q>>%utcL}s5aN)`U?Bb)s7H}W zMuaQ?GAtoFr_a#0aBF@abYpQ!I_wA&6Lcpv_&$&3Vn@wvrX03iU;JlZ=UnglnSTx= z`5QCHb4bBSiEyr1%n?3U$@Hr5C6ks^_DQaY*Sd!hCWWrC6{j_>b%lkri0ntIY*SKkMy`HpaQrL&+$8Qg zJp~Gw;Uy$H4~~Dk&k_izXH20VDI{FG3f^*f@|V~(=BYs#xMlYUqRqUZxgXUrY&aii z&|BsKHZ?KpFbM$l0Q%J(t3=?$o9o3i9L3?|n5IvakUx#-dk_l~AU2r3r@^$c)^O86 z_N4~04Ww|2fy4oz`=4EIrghnO_1)jAM~bP244M zj^%V}btmvGJHXe$tN^M8&iCD#-{bZcHXA^I+gsA{%fS>!6J~93Gmw$=WS~%p)r1EH z5O(e;SrF%B-kyounYSz=Hiv~Dac{$vac{1|l;mCF;AUxQazdq<$9kdOLZ9e@zk;!f zCmma++IGEauJ!Vjf67GrO?j_c@RiIY(Btp)_sP^|44ITs&g7|S!r|`_%w)4Y!M2V1 z;}qqqGasUH+dEopCrT<~JAqlyPpIgsY$r}yMlfMJ*Ew(Bk}6?*q&;tek8>5LE^Xq8 zzA`CT0${`VNT-2}Y#85!ZHS8*nNPSL2Ow>k3-^Jg9p=J>>zNZ$Yc4$6nhWqT@f9`; zo%Cz*zwiO%@7z-ik4`b^n8;B3R<@I0k?k0oo$a6nz4vT~2*?)OQIJt&JJ}xzw)12Q z)IdUP{kDb`*VBKk@njzu?+0^GB7*A zOkw#pSAk*)oH=auIS<3X^TBN{-do|0f>{xXR_1(DwkhLPCPd4zzi)u+*Rc+bs2oJJv>rsD#){dGhfCOPnilJt*cksILCS^Pivx zc8mYKyhCPX<)$a+i>}(6sgr+?FK1+^WS>{w39_G&+&ry+2qyvF9MU;pGxcB6UfH0Y z;e@#dtYj8TW|YLIVCKOGto-N1NfszN#{*TFTfsrS3m1b6ZzQ-O+??diH=JF;;};Uy z3FSRvhCtdYG$K1QEIEsZC_xRP*N@=@S*PeCd?bf-Trln09CVo9dVZm!H02tG4U1!F zMt6?ze<%@1#ehz{#M#6n0$y;n!_!x5VvgY|I4db-r-P0C(<9Oc7d@@6Lf(5FQUGKD zWv>Olc1mF<0aH!Dm_R&7UxL9z1$eTgJ56W>a^P|t@p z=NCKK^#6K5qNAmNDkv}-9m|VbQDw2IY9g%3#8NUml~VeF6x}T!f3oP@oIHfOdGOSz zH@90v1Q=(H+T@&4bL1i_;5q~R+Alr#ZP~r4XO@TcPt$#r!`bn-aqL9;TbRnE@qVlE zRbc`1FU(jm>el@DFL~2lHI0qW?IyCZ+r*m}eRY&k0XZr#)MQi8r7C#DFNvaF&n~2_ zaqJ__L*~z&1ShJF#LlPz~%As$cD@F|R010j`!=bPx%N+V$z6FPRdpCw_i@p}RX8?+=Mn63G_D0O`JVTR8=9eIc! z<$<8T245_%bBioeK<|%$#)G#LBN;n~IB0k7embY&-N!uU=iZVk*RxOgn18ecvo|My z5t#DxAHZAq`3t^48`iU=ebh+syoYMw2FWR|N2kx4Zb@8$O75JDo^5A1EADoZPh>y+g#K&fhkEy)zF?o1R z^Rb!je9XStk&iKm?VJogqxs~_X;#c>S71)FkvZ*h?)B@Y&vJ5M;9r1<5OCYE6pJus zROd`H^DuAm#iYd-;UsOocty6ysYFC+$}O>losqG)k8k6I^V6J=55wdQylZ?J>K6YH zfl;L-C$o{5TO5l%oINTURWpHH$wcxVIPUuR-zm% z-Yg~Q)rXS5@TXI_n`R%29V75hIXk`A>HJ6M5Drb<=i7BN7q`^?q;VXZeX9G5P2G=j zG=o+Ch~yRX=AwKR`Mr?N0lqe`{jV8&V79l977B)PEcxQCNeYWD#52@JlE@V$srTx^ ze`eOuTkXN39{kPLgIPWJ>f}K&D>l!Gcx*lCNJHqUw$)|wpDJsBlsx`*kdV# zjQ&IEC;zm;!~rWW>s)|kav>Q-{@QPyhO`qVh91PJh#$B*%$d4^xm<2*M#=nCk}nzh zB)t*R#tO_KfxOj$6)^uzZ1M3FAK=q#@d0heG;{Uc@_`=}ok_wOd|(IS!@<$|Jp&Yj zn%faxQXr6qs8FKH`XC?_6(HI}c@i)+aKxnud(p<+i#7=!^f;Sqm}9*_FZ6 zV>zegc-}>YW+@L@b?X<=u;p_BKLCFN^SL7b9IaH=LDox~Hc&mW-pNhX$3t$GTl3p2 z8&P=(nDbntZob7_(|kp`XEZXeQeQvMQSrs0&v@KUVdvCjJkdEd@*HAtnC#l22{VKy zV4ceAtp3K|zU-Svj26Z7>Ic^-SX*P)Ks9s?bWUdW46_+SW`U%GY?hJM0vjb5a9`)e z3cbx(<{Tyl0cA>Q4dph0n(YRyI~6%1=W`&e7y!Vc94LlAhbM<0T>~bc=4;Za6*H=! z0yN6V!Ab`dBMKcvT62*mRI9yi{dyKq$?q;!cy>IZ{4F~CC%-o>`*5fo08WwciZppf z54ttTCyt-4_I#Y-hr@Enhb7SWPP1soiH^f^7HKA@4&u!K~K8*24qTt z(gOYSvYl2eg%q7L6zsJwBQJjdzF|r;sD(#%5c*EZ-TF1!n$YAcqCgHN>ejFDeAtG+ zym*WzIZ9qcDq7MRG%Q>E{8bH-A+m6zH!TV!G!Rx>%nBM7gW{RrXWgw*bXMj-MN<%@ z%SF*Zg4QPyvIQhnOs~!qVMNTLjHuYiaSS%0#QO;rIr+^RSmc4Ja|?hN=JaM5xiKPTjGQYGQ&dLKKHi8{(HZL)uFa*Zu~|Mhi+f zpPA^6-BwS`YGkMQv<|>gW$iO?AY#czem2V?q}j)p9pCv24?kelkXS~2Gylrw^qoa< zXp;-^7zLdTX*68L%qqLRPw7;jCS%(>)rTerlOPFch|HKb*tdX`$vK@TXVOR;U9W_5 zc<4opI??=T4zvrOdu8|>)==Umf1pZ2HN+p`1Z+bmnziA{fFn+6$!D_GnTjakPDpDa zIPhcivqZGdEURC{nu$FQ26rxszzjmt1g0I3vLC!hx}Bx7mZb$rIq&k&&JeL$RM41i z?h|$7lCp2*;3ur@WCY9W2`kQCGI|w?(5SrvxqvD_lvgf^<_r8*>%!Rwjc zp<59xorrElv{*npVa-CeO;M(Xk)hyf9Slm5;h0cJ^?5%?h^QV+q1w7P(6`FbgHjaW z7L=lZ>N$rZNwC6+EVFhZOA{C)@&>FX+!2Kpt;Oybk1)0&&+vd`dl-5Ig5?PqhS4N= zD%VVGJFfS^n_@II`4aSb05Bpoz@JlZ8cZ}ZQV^1yqiJX;PEGX$GKwkuT-gapigxIZ zC0GpIQGz6c($3w%d>lH#aXs6+W?cbDA&fd=ALLE6VMgC2JkY$daGg_^DP=t8~`i^O6~G8rjC8v?s(3E}!_ju0_-wSTgb7w2al>L{J)2`r9{rtkSg%{YbthS8^@bBQ|N^(CUaW zY1~`Dp{WR@4J_hG<=X|zjDw})V40f&%Y;o}rD(ts5yiIVPGAwa?35d`C!I+zo7|Z7 z^U5D3r%RrqYU}W9e)euwOURuiPFa|E< z$^3-j_%LpgB<&>rv#2)svmaE9znZ<I4&~KPW-;aTsBY?!8QkM$O?3zN-e#W@gQ^ z0pSA%QHrov>8cuQnRP@}7KfRcrufchX|h6EGN{1bBJhZHXZ3ibIP&Sj5;=uThs&m1 zv6pBQQqC7TvsURW6Y_Q92H|IT4t1>Q9_$N6DNRg9Dk_$sOh`#aHzY>&{J5SEs~d_N zK5Y@tl~UMQs!Y<@usrtUn2W^?#nCg>t~Jl)p{ao%S{N3YMol5HfgLRrKw8~c-e4o7 zA2u={PjR%oVMtZ9Wn*d*V3Jdip{}2)cCP^`DIQ#~w4m%UQWg-bNmj7XxQtoe_@KBk z0MeRaxDwapfM$+xt$tWr0-_~}JW||nFSTKVyo-D!d`wk<2Bgf$frR#AMHaH&@roum zP;IfIGwgSy1vnm1iQ%~FD0;M2i4A&&N^WEyK)tb=ZY*w$mE4H&KtbhjRc%_p`eFuS z==BvV8`Gbms;!*8sJD>BNQ20KH!Kpw0zJJY-qX35DRu# zxCChLz6y3$gJRJgjvMC1G3P(PpXIdL|=6=1D8v!)u&5COvVI zc~W(?!rH9dL+Pi zem2eWPIso)pG}4*({kP7KM)UC!-1%n9C>@R{U{Auw?eYNfISr5d#ij+%R{cYfL4?| zOdnfj6BHFz+h5+qg@@rs(vyl*XNXt7uuGBQ3V#;DJq&%5MFV_LZ6DR zv;g0Fujm50(GknkMz$}aNxq+)^`eRcISgtkYM)f)VJQ<;=#ln(k=xd%9#4HNEX4RX zP%>+^qQ$xX-piU>UFVe--~lDNe1`^;TSkzIZs0{+R;XyQTL?(A#o=&;`G$W~e1upR zu4tH))B+f&OECJX-Q83>Q|z`>+FG`{pBT9 zw|h+e9X?QT#$qetyr@o@af{s~{`GA18Y5FgdHh1%Om1Q zXHXs9&~gEea#-A~p4)`mnc+ESE|v;dtt!07S;!8Jfno&UwZg-y!!Re~M}_eaG<_;C zwYBQnG0PSA;xM?u7|TMm6h}^(W1098X~7JA0lV%Z#5} zdZRh!z1V9=BeANXs^i^MBb{QOp=zHIiny-&z+awHmgKFpEwIleLtCkbyc!MQIK5&E z;Mf9c0H-~sZGc1FAuQ!R1)L7nFwF0t0$dRRS4PYSz_t2ifZNiW3E)s>`L{L=I5pBK z_8Z{#H-J+g*g}qg+rJawr2aT(2S!IZiYQ+%jzSALn7R$s>L@DP_!GrZRB`lzqtY~3 zW=ij1p(rh+tDgdiY*cLO0g^4K2NaSnz$ZZ$kPuFN5pN2Ds}s^LT?A_wMqDR`6bzu3kv6v2P%WXDUe3EN#UP_)L^t9iUA!GEn~kzB+J* z{S>QMEl8u`BQ?#%b_E9CNkbr%Q!u*yv{(WPgu2wlgFM>DqeDE}%OgA}_V8$)M*`T0 zM;M=$c{InP6&~U9BGByS(SS!wJenm{V)n3fwc?nfM%V9QuAfX)+4{-k-$#AjMd?LK zk14&N#EKoXz!?<6F1jHmqm!xXR0wIWSU4lqV-XUVDHiXQX@b2do8ov=^B$lrvehXl z?cz0i-@pQAR6Y~z3})1>Yl;%TIxJB&wdPFGH%+a;nE8>sD3W6Q5i%xW1W_y@X^lPF z=a?*oM?K&A@JlOMAJrBk@o}{KXe5q$Y5c8OS!k{f*iB&v6Zg%#*S4yw9G!;OR$_)& zqayy8qM}dxq*IY9npxNk%9zLkuMNLtt>7;T9`tqePE(gkLXq3+8q2h7b+F{f@2v)F zAtHxcUE|+{Qpk6%0$O230a@YH3#(#1v0I-u#>4ok!>0t<;4Q9`#OS?Zh%5(DqN$l! zX$r6-?>3067}6VU^lMcmpT-`}7ZI zi!)U!JyI2E(2xoLAe)gGG4H(;(~x4?xd;V#KnZr7r68xKAmc$~0!e$m5jyO5h2|QK zbk3(U4bQ7#n3LLNPV=u%wYHELv5!q9h_8X(vf;x&sp%M?D8Xx1B-R1a16db)yrk-O zkEx%0I98mo*w#R5nJmrANe+(oWk(=r$Ooa#KPE%KyHJS-v!fDP=UpTNBTL!kgJ|dX zn%Gt8Kf&%FAMDC~&=t4q!LBj|^<1%-V?N`R`K=YKq9T>D!by9PQ)5xyl~nn5W912J*|_1?4ho$ zo4gUH#MrTgSBZsB^D4?Tyoz_zyece1rn~Ga_H-}R8`t8sA~1!`xHTfsrGy$5%e7Sm zj98)pBZU6)l(Lc(V$>w|Y-{l}y_H9{;f!X#1=tv4*lyRH5m6tD*D;QMA2*$oNiF zr`w!c-s_SX5;Zo7?J14T7XxBWt^!$8=#G5GBudqQHAT(SP4TMTl(lS4Ma7}5B%qJ8 z{5g^ge|I$>pPzpym8ZmIY}^^v-L$@C!xFPX7;H`}gbX`*W{!&keqYC4E??xQd5(!2 z?OO+u%*sZ90!Zqos5uLEKV0Q9bTf?g>|=P~!kAKBpYZ26waZkQq3FoBvx8d_xJ_?P z?qF}0Vz&{PC`-8MYdF(?tmvo)g#+SW?^y}O)>ugJgIZq6dqj1zV>wg5mf(583%<$6 zKaJ=kXSjSZ^eh(kqLy9(k5E<0UK!SaW z{4sP`tuZd9C)2XfmVR+-eu3o6^)ui3<=~{?|) zU-@|*yL(%a>1^d6=E2XA-UQ%t)h8h6gk2Got9Sx~e5Zc(zsGd{bUOaOp@(C%spdPD z1+lnil&d?+vGkZ77^SO=DMvY~`=0?stflC`t}>le{3&av7>=K2ji(Q9PWF2e+Kin7 z04MjKFnKZyU&)};_(1LBVsx9?lRdT5ZRKu30~+BE*cg8-!iO9$1~k$z5Z(~r<)8+< zyYV_$DlOD2Tn6}C94Z52;Ua<}Zvj_=yb{JNYv}_9nCmrZiCEhnV0n5_1g5}&T7FuH zE#Qc$rRcfCfrts+z6b8_$HVN;Rd^}i!7bE{qRkq{c3$%Oh0E-Sd`p=T(&C`Ecfi|| zAcfbEZtxxzW`2sy`Ke!?eB-T7AMwj) zxxB|OpXTxozr4id360r`Z+(FYr2Q(?q;En^sz21E`cJT>HPqb5Y9%zqhxU^gcRrlm z!h^3tC58=*8XwM%>*b$EIWea26vM24Nd>;nA1eSPDDmg41h{=tCHQ?j{1QKCUp}H= zNJ_YWoNsM*>-6^fc_3m?W6!CO6M_KB&2f0k6MhLSKTJ59JqEfKhomC6aT&8sJyX{LZY1z4zdE2GBmHl9T zU$yKK_*2#HAuQH-=NI^am41#NM5TI+;8c$}QNZ{rnSG26km$!oK-T{Y%>St|z!i2J z117$0V_>A#Wxnw-a1jS(V-WY3E&|WD5!o0lKLsrM*|gfNu8Ub$%fkxpZ=8uC7*}Ep z)=LJVUV-;Q!I4k&pL}eU@ zLS-C>eEa-BzUVQo#U+0hjpo-3mag$7QgMFM9=OJ5558>=3R3~?0RiR)YQahm6yS7^ zsQ0oWHHZIrIq#iMAMPj!^I0j`N0JOCfCgC&PiB9%gYLtA2rV^QWk-0@LM~{TmSRHA z%<(?>GLvb+lH19ZZ2WgEo4sYfK;iT5F*Z!v=9JZ{9OoZOOlmI>()ShECrp+79I7;{ zA^xxkQiGW)xk(SGsd;cj52&emV6oSVwGW@jdyO_m2g?uM*~3|m@jMzfU6 z#-uGU;di7q_Q>i4C zRI+{FjiBWjYiwpbws8#6trdUam^k3&ac5;sC;mvYRGv&EywX|IvZcg!;&eN-8xjb! zoI!E|f==9+=`cwa4v{-yIui^y5QrJvM1V;QNrNF_Fpx&``~T0m_uW@2$ujK#GYf0E z-o59Z&wcjZXPr5hnkYue%tI)N1;`Mr^GJ^uRugz&^bDa zm9q9e^#S#1{4>&$s<`uF_f5v-8ebz~<6FRpop-2ns)NaCI+$4flqy=L zScQEsr3GYClb%9>woqY9$oLy0eHM|P(Y!cR6>`4>H1fBB@u&??SxPs?c=*xZ0><}2 z8sSSz%UU8F>JhShJ*F3S-2TnSb!pAG&bAKIE7YE%FZBpSnYG^3K6*FMo2EwG7o-&S zaxX2Vpv^O@8xaPogf&cUmd-%?Rr1 zlY1b3fo>nSRWc_BIYO{4rH;`q@rzD(Us(s+at`(e=)`gNEL%!y8n@JfgN^9bGh8HV zWjmOtCuOG&;H9=352g0L@(JGQGoA^mHtI@aR51A1RHdP+ z^6St1`iEjvFmXCsiKZfWK8UNl#wK8-Ei`fEk~mrr9*V*0gTI{I2pk6EA?>p8u)l_# zm+duVI)6P}43+8byN)3ioIIKBFP}-?!~j}%mcK=x_g$DEl8Qs7YaZw`3HRBYZ(R-m zt>`C%)sv5Z;li7AsZ9vQ)~?y1`Fwu$74IyD_vOR8rh7N@chNgeF9a&&7%u)T+>$SR zVpWo!|4Z&!m9Y;0J%2KJ%>jut7*vg3GluH4!upReO)7723dAQo5g&|a{0h$yM-qFU z1}%84(2N7wNe$qYQGhG~1zZPsq)ad|ih9C$FW(_=9-VA&x;J!A(4nJ-1m{5#V}YMqqfez{6@_mR zN>H=|LHVmmk-ON`Natt_w3O+-Bq78%On20YGuIaSURP)4z`1?}&B$;jQBGW2uj-qF zRKaZ=q^b^z=+A6}1j9MOa7GynLn-h*Dwkw-U2>)hKj+Ui_NX6BPNBg7usE+ew@G-- z6rru7>a(%$S@M%9S8EN3vQ|0(9d08LsdOAiffo^gj>cg8Dpzsid=i8XuZz+|x!D+* zi1vs~d^7l-0ii+!Da=zfPuTkjVKU_>W}v2vX*_khCQ*x~rYq5OS&>{tEo#RI zbXK@=Xh?r%9f59^9?&{7NQ%gS2uGely0A89_5gmis$6HBKA}bxfe!IHA{F!aLUU-2 zDCtbmetN}>IE_0afGbI-iTrYk7&(o?s6ASSCnXw(=6d8%bV3`F)Oc{=yt z=5*#zPxdB9s5>Jq`9v{Si83?yK;LNX1k;vbS>gp#{5v`k=i|lqA1hBT>}N^IXK!$% zNT&SSd=_2b0ZxQwD^aL-FJzIf6tk=8J0S4c)s`X|rRC4|*2*XTnZBfDat#fcKbBAa z!KdgS-|u_)d+#Wh-on$NtA$CpKW^VybkvXVc^$6*Wrcfu58NXt6Q%72%DNJ-otD1_no~UXK9epxZ)(@}8 zUD>mtGJ9`&lFGF5J{2lse$?+!+4X`)xKMWfz$qf3|%`xhU{w*C~LUU|&A>^N9CT z6EGLSY+`)A`aA$y@eA8L0Xq!DU3>FEJV0bog@(>}UgN+tTdpsD=+jBuyrC!ASNHj?&9r!C1cI4_EmabKeIQr57n^A`|R`j zhhY{m%Pe#5Oo9F>|CYi-iihRunx>=)}jm^e}z39XyKYX?;v)`<6ip_TFoUdGB}lxy$p9y}RpYq|eoV^~;H$wd{O(#*bVAS^d3`3dQjheGQZC}~3KPiy{x{+`|POt;y*z)(iEu}lhg1{kyDO3EZD_5K4OD;nL zM@4F&2E0U#-Yt14DpNo8r8z+vQ21tLuT zU{TlWWT6kSA&xC# zGjf{M@iNbkMh?Jc)_@lB&UXQww48mFD&)Zu3H6=#7BbQ~x{fHSFUV<+{@|x;?T@ph z2SOI8RE!G9VkU^4s(chNIt)c3d+B&Y3_d_wO|s%ozzYb(-_(wDO*$%*ih+0J6AP46 z&68a{%wi8!@-)NKxXwJh*z8pOs2Nm$H9W}rZ`L!d=SR{Yk^SP9w1c-aB(f(FTCo65 z_n!V=8E?bEN|D~ErMe9#*9}Q)X0A`SPk&)STL@5paK{*99_a--c16tDpN@dJut2iT zwd%XY+D|ChA%9d#dl8%!wP0fj1=_k2;4Q@H*ITN9Pby2-C?^Nzr|*h%GVEO`z!QeY zR7p2f0%c6y4QXO%!`($!pPK z*6C&#h@+uyJe-ncQ03MSN%$l~fZUE(6{wS~(N0KD${unfm8gh%&|-WmMS{LC=TC3+ zP!>)yTciJN#@7rd1)0bVirU57`F7jEQ@8_6QOEjF3MT#vx`g%fdNvH9|@`nvX13>FWKb`3TOXtM59^N4Rc1kiHKZ>oKxO_><@-jGJb7 z8GTPW1w&Z7Pq@A1Z<(>DYx6L59b0Kkng-k|@!wmof>#~@4M^*8RHm7n`V1|L)y2>L zxLhEbDrL#+n@QCPoT!5*AGbwj2c}f&UUC!fo++o4nh|_X=>^hG?1doI{452f%nLeL zf-BG2Htbs9C0v$s4IZK(OyzO>2q)dqU%O|}L(A2xhXVFg7Xb9BT^Rj@#0L)gwKBxf zx?E_~Wz?vaX)d>e`=%E*K)o`=b4BdFAeaJ8ZYi~WOG*05$`nKdxSO3JKRLS^eu&1T z9|xO|(P*zc4u>%N)NF|3Uc?XVHs{CIR;|E|{SA_)LrTyS>=J&hCyZ6*%%MvdF0(9_ zsLKev$>bg4dlkql)H#l=$}7nb%{7tRM*jvL8=!`QjcF>=z|_*fz)bRiy=C-~<^2u| zzZ=Q{>lRLQ;SF38!gT{!d1}7^I%Jv|$q}B?fpDR%DQ3ebs8!HEWyuA+>*ruO%)uzk zfuR0m1$Eo#2<&?U*c;F%k+o|b^kt_P!GD^G@RX!7{clVJZ~y<92o^riBF=vkWLQq+ z1yE1O&n~6&hvuYS%-4#(WLYiLY+@z*v-QU=ZuH|^`G@E1fLNOx&?|b;%e4n9vNC%M zg6hm2y!LQekFpAt6s193o<);zQ(xwi#vi3bX3n52Ws5yL6%dW1oWFLcc=MbBy$N*s zr`o*GZ0y1^qKxAUdw_{?0S+{n~GQ^*0~;YI5IrIcR4<8y2@h`$aa2NGE@u#pu4(uYLA&zj*9{-~8XdPIorv%Lnl^yLoj)vzznn z2l1n}d3DRX?lUVCJM59pSA42%%D0i1o*pbV-&brQ7oNK|FN2Fh>5kq>q%? zLYYy%$sf@xO0GiWXI#PYy zbf3DehW$YqX#XI2)E9NxBe|c)`;HZZ{lyFno;%tyv|l~^wzuDV|AR-4A3k(XF~Z+W z$?*^H1>=I`2hRu5*ctTpqpLWzgt>JmAN?<=4BsN{1^H5k`*aLE+4MHsaJI2lcGM2A z+L^WQr-aU!SNkj}PyPtvZ^Nk9xyIt}hgI#qh- z@`Ro#9b(#(;Hx+E2fJdHS*3FseorFkyPt#rlbaIKIn3OX$X$}tF%v~_RyxGDCz-9% ziJT_Y3hC&o_ayx)y?=Sq59xiSqx%c>%w29hGx;I?J;|U-A6%XcLVk4Jdy-+5KD<2P zcCqS5!M!J$uhQo)Pv%29%KSaaLY2O7d7@zScr`!g4sf|jTwt+%%XG*n7@Z> z3P3tCAmq1hm~Q4_UEy3wQV>{4%fc+7OrkVLA~IN(LR+X%Fdx)i5a$t8RVdI-`4{kY zdHbwbe^09q*bV=%$;d=xLvtW;48a4{-N$j*hzzXEKoM2pNi>Qm(~u`pi6_h$h^}Rd z07URb+&=_!4Q*QSYd|q`$>oi>8dS^Gst!^uXW=kX zZ3sohISV3>(Vwtx2?qd?tW~N}9HKW&In2Nn9%m;NAq%YYK7w1EX0dQran(&`v75wV z;hO7NtiHlam&9V1%thgETg9igk_d}kf`M;=cP{$l7Ja0|R>~~GJGE#m2Id@CEDSJ~ zCWBcl#iv+oVB}L3g=%1hk;`vbN%e73a#0+V?$VL!%Nz-E?&+m;iF-+ijnAP2ZF4H!lG_+btn?Tz*C^p9+w7XRq0#N8nS3jeo|7!UKXOlVZK~%Uv=j0BuN2rx}s(m%fad+Rh zB}uWoI=*rB@DnJ!^5y%F?H@0doc_t9zk>zo1d8JNA3=6@&943NWs08sDwI|?gb2KF~o*mM6S^Jv)F=U zhAwidV%&G~Ma705^5YoyL&b*f9B|GMHYKV0~4BLee%EC%Xt3XEg$IC1AlCAQW}9R?ciLN$&tWoRh;ezmF$@ zPL3zq`BvSuYUkT7@!E%n8Q7JsDL0ltRD`Exty=wn&^Lv7G3kOOUd45`=+&J?I2&CX z7=*ccKQ#Rk61gGBDI-I=FuA@8Eu6kS#BAo=7!l&tl8xe2JzGyzlqUp>^kz?{WC@{{ zxv}C2zoaXWYt=q#3LzC;WrCh8%Z)b>x$)*>yFfC;b3hW}$S9D>za;u{Ad@%%wsc@= zxlOBzjqYD!*l;?rFx5A$?^6jOqOjCYn6rbwGvzaMG6a;?jq*ra*mh|kLFD0vz2RRH zw+yMpS1}!oI8@P}#H9YI&FPjPUG7Dtuq%o3PpkYkSa{jeWz-BT532rT^vA)9<|I-W zs(~@wBxkdSc1=7gC%XtRy=uG_CIBOMIf%4TPPKaP$0@z-?6y)rhACIU*ASX*+OF16 z5Kt=bjHS4+J1VuH9I}&2c;d*7Yv(Am<-lALyArB!AG)i^7Sv&PswgkI-CVF_Bh%Iq z%_QJrdIwXVL^PB5hMel->?$aZFS+A5SZ9P)=oW{D!AS%R&K;53QmYEDRd5)@4V9>Z zf3kzo8Tl4^t;}46QBzeLLtg1kRlW2Cbhx_g4XcvNIn+_HG@?szGcpDS_d8 zfd7~Y8f!*bq^{y#DD_D#=A$AhPCcWwgE8X_4TN^FOCvfJyP_Ftb7LWJoSebO>K!^$ z{rB`n098=%^hOv~5sW;&5zJLgB~P!sr!W&0tUbN>hSp@&0M`p~9yFhrF?z{SBs#kO!rnjm&PA@)zV^hc}@u`3x`N!?OU zDr(!9&(~nrPjA0Dz0BtIm}L<|buy1qV$1I)Q{Cq(dpPVr{hUgr_+saji$_`v{$WnP z33FPS2VXx-cbsNgMbd$^?6~Mm^s1xJvzl8Gxfwko{G|R=2ZsMJ%~}Lra?L>VFifnmTB6L77fFMAR{YT{c{6D+*qTY|1=}g{V0A=G0UBMsRy-I6 zs!SCRCUQWN&u`+DcB?iPc%^Gq^@NsJ@2i?4OK#QcY*w$cXb5WNTt#7gKVi24d-GPBw<3k!Sd@rcRXR`M%GIAZuC!@ z^%3?pm@WmIn{H>W{EJYi&w(e#ANM@wD)g4kmG2I33qA}j9|~_Xys`!_q7@Veu2F=+v>>G}C!wBa)W#5D$zb+8#2|d?~0d@0Av#<%# ztpz!DM>jE#7~tWJiW9J2dBGj!1=y`36{>of=E-0sV6AQ9&WO6x6RKKe1B-*B(M?E} z*c$ox6WLY)f6E;y);vVL6{Wl(X@?Un^TV7t)l?;bl@*^Vz3VGkj=A>$vE{ec5t8<(8V*y z_K&wPa{#MmIywy$qGQq?XO6FCHtg21*r%yf2AY~W44{Ig#@XV+x~uR22*o-YGg+!s zjN)vm!M&SM!zp~?!H*x8BY~PvoQ?`TO}h=DjA`1{q$H{0tnUi!Swo*(PNX2;%@T}= z{u&_#bU`uc#)gs2v$DBKu3EK1ecXoTuDMn<1WTap zYtW1!&lB~Nuq1Ct6(Fd%*wLYtn2@D=y@045XVXs*!A~1oGy&_mv4-Qzr4?H{l z|M03*gG*s0Ah9qs_+$dyXck)Kds5FWmfF>=^~f;gpG{8MxIZ9*kRLTqvyv2nmR|@g z5`@2o)wf!cV4A%Kq5&>69KO76b|$j3^GU7dT)$UgkKm$y!7m^0gFcev-mLc z(AQjpEMDFLEzrmOKF=n1*jr4VXkFnT0aCcbj^&9a23i*CfRb_Ym}4ez;&h;%KHp-O zrNQ*{WmL}Ws{KQ>O<#KP7Q39Tsbx}Ue2X3ZzuE^wwMz}o&aGOa6Wn44PQul+%5}!+ z)C$COwzM*sNR4F7s~Y|MXOOWR%3J{ZTb^I2@THnxC_?LAV?0I~@eDDHD2p�cDgl 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

kb6k>= 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⪙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

8EeSy{~-^6m#nIpTFx5zOJ7a7?0>KCmS}Y6Djs6 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

Fw<1UZ(?5n}3?nx?|Cxj-2&b76m%GNx6_vTR;b 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 aO1wz>sF7pB!$!v1s>E_y0{h5GasLB^so9$V diff --git a/assets/index-ed0d182d.css b/assets/index-1ce6f1c9.css similarity index 54% rename from assets/index-ed0d182d.css rename to assets/index-1ce6f1c9.css index 4de8dba..c3afce4 100644 --- a/assets/index-ed0d182d.css +++ b/assets/index-1ce6f1c9.css @@ -1,4 +1,4 @@ -@charset "UTF-8";svg.svelte-d2loi5{display:block;fill:#e15042}li.svelte-ltkwvy.svelte-ltkwvy{text-align:left;cursor:default;display:grid;grid-template-columns:40px 1fr;color:var(--color-text);padding:8px 0;font-size:14px;line-height:18px;min-width:fit-content}li.svelte-ltkwvy.svelte-ltkwvy:first-child{padding-top:10px}li.svelte-ltkwvy.svelte-ltkwvy:last-child{padding-bottom:10px}li.selected.svelte-ltkwvy.svelte-ltkwvy{background-color:#f3f6ff}li.selected.svelte-ltkwvy.svelte-ltkwvy{animation:svelte-ltkwvy-backAndForth 5s linear infinite}li.selected.svelte-ltkwvy .primary.svelte-ltkwvy{color:#2b8bfb}li.svelte-ltkwvy>img.svelte-ltkwvy{align-self:center;justify-self:center;opacity:.75}.texts.svelte-ltkwvy.svelte-ltkwvy{padding:0 17px 0 0}.texts.svelte-ltkwvy>.svelte-ltkwvy{white-space:nowrap;display:block;min-width:fit-content}.primary.svelte-ltkwvy.svelte-ltkwvy{font-weight:600}.secondary.svelte-ltkwvy.svelte-ltkwvy{color:#aeb6c7;padding-left:4px}.line2.svelte-ltkwvy.svelte-ltkwvy{color:#aeb6c7}@keyframes svelte-ltkwvy-backAndForth{0%{transform:translate(0)}10%{transform:translate(0)}45%{transform:translate(calc(-100% + 270px))}55%{transform:translate(calc(-100% + 270px))}90%{transform:translate(0)}to{transform:translate(0)}}div.svelte-7cmwmc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;display:flex;align-items:center}svg.svelte-7cmwmc{animation:svelte-7cmwmc-rotate .8s infinite cubic-bezier(.45,.05,.55,.95)}@keyframes svelte-7cmwmc-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}svg.svelte-gzo3ar.svelte-gzo3ar{display:block;fill:#6b7c93;stroke:#6b7c93}.list-icon.svelte-gzo3ar.svelte-gzo3ar{grid-row:1/3;align-self:center;margin:8px}.in-map.svelte-gzo3ar.svelte-gzo3ar{height:30px}.maplibregl-canvas-container .marker-selected{z-index:1}.maplibregl-canvas-container svg.svelte-gzo3ar path.svelte-gzo3ar,.leaflet-map-pane svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#3170fe;stroke:#3170fe}.marker-selected svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#98b7ff;stroke:#3170fe}.marker-reverse svg.svelte-gzo3ar path.svelte-gzo3ar{fill:silver;stroke:gray}.marker-interactive{cursor:pointer!important}.maptiler-gc-popup>.maplibregl-popup-content{padding:2px 8px}svg.svelte-en2qvf{display:block;fill:var(--color-icon-button)}svg.svelte-1bpbt60{display:block;stroke:var(--color-icon-button)}form.svelte-zh3kmv.svelte-zh3kmv{font-family:Open Sans,Ubuntu,Helvetica Neue,Arial,Helvetica,sans-serif;position:relative;background-color:#fff;z-index:10;border-radius:4px;transition:max-width .25s;box-shadow:0 2px 5px #33335926;--color-text:#444952;--color-icon-button:#444952}form.svelte-zh3kmv.svelte-zh3kmv,form.svelte-zh3kmv .svelte-zh3kmv,form.svelte-zh3kmv .svelte-zh3kmv:after,form.svelte-zh3kmv .svelte-zh3kmv:before{box-sizing:border-box}form.can-collapse.svelte-zh3kmv.svelte-zh3kmv{max-width:29px}form.svelte-zh3kmv.svelte-zh3kmv,form.svelte-zh3kmv.svelte-zh3kmv:focus-within,form.svelte-zh3kmv.svelte-zh3kmv:hover{width:270px;max-width:270px}input.svelte-zh3kmv.svelte-zh3kmv{font:inherit;font-size:14px;flex-grow:1;min-height:29px;background-color:transparent;color:#444952;white-space:nowrap;overflow:hidden;border:0;margin:0;padding:0}input.svelte-zh3kmv.svelte-zh3kmv:focus{color:#444952;outline:0;outline:none;box-shadow:none}ul.svelte-zh3kmv.svelte-zh3kmv,div.error.svelte-zh3kmv.svelte-zh3kmv,div.no-results.svelte-zh3kmv.svelte-zh3kmv{background-color:#fff;border-radius:4px;left:0;list-style:none;margin:0;padding:0;position:absolute;width:100%;top:calc(100% + 6px);overflow:hidden}ul.svelte-zh3kmv.svelte-zh3kmv{font-size:14px;line-height:16px;box-shadow:0 5px 10px #33335926}div.error.svelte-zh3kmv.svelte-zh3kmv,div.no-results.svelte-zh3kmv.svelte-zh3kmv{font:inherit;line-height:18px;font-size:12px;display:flex;gap:16px}div.error.svelte-zh3kmv.svelte-zh3kmv{padding:16px;font-weight:600;color:#e25041;background-color:#fbeae8}div.error.svelte-zh3kmv div.svelte-zh3kmv{flex-grow:1}div.error.svelte-zh3kmv svg{flex-shrink:0;width:20px;height:20px}div.error.svelte-zh3kmv button.svelte-zh3kmv{flex-shrink:0}div.error.svelte-zh3kmv button.svelte-zh3kmv>svg{width:13px;fill:#e25041}div.error.svelte-zh3kmv button.svelte-zh3kmv:hover svg,div.error.svelte-zh3kmv button.svelte-zh3kmv:active svg{fill:#444952}div.no-results.svelte-zh3kmv.svelte-zh3kmv{padding:14px 24px 14px 16px;font-weight:400;color:#6b7c93;box-shadow:0 5px 10px #33335926}div.no-results.svelte-zh3kmv svg{margin-top:4px;flex-shrink:0;width:20px;height:20px;width:30px;height:30px}.maplibregl-ctrl-bottom-left ul.svelte-zh3kmv.svelte-zh3kmv,.maplibregl-ctrl-bottom-right ul.svelte-zh3kmv.svelte-zh3kmv{top:auto;bottom:100%}button.svelte-zh3kmv.svelte-zh3kmv{padding:0;margin:0;border:0;background-color:transparent;height:auto;width:auto}button.svelte-zh3kmv.svelte-zh3kmv:hover{background-color:transparent}button.svelte-zh3kmv:hover svg,button.svelte-zh3kmv:active svg{fill:#2b8bfb}.input-group.svelte-zh3kmv.svelte-zh3kmv{display:flex;align-items:stretch;gap:7px;padding-inline:8px;border-radius:4px;overflow:hidden}.input-group.svelte-zh3kmv.svelte-zh3kmv:focus-within{outline:#2b8bfb solid 2px}.search-button.svelte-zh3kmv.svelte-zh3kmv{flex-shrink:0}.maplibregl-ctrl-geocoder:not(.maptiler-ctrl) .search-button svg{width:12px!important;transform:translate(.5px)}.clear-button-container.svelte-zh3kmv.svelte-zh3kmv{display:flex;display:none;position:relative;align-items:stretch}.clear-button-container.displayable.svelte-zh3kmv.svelte-zh3kmv{display:flex;flex-shrink:0}.maplibregl-ctrl-geocoder{position:relative;z-index:3}.maptiler-ctrl:not(:empty){box-shadow:none}.maptiler-ctrl .input-group.svelte-zh3kmv.svelte-zh3kmv{padding-inline:8px;border:white solid 2px}.maptiler-ctrl .input-group.svelte-zh3kmv.svelte-zh3kmv:focus-within{border:#2b8bfb solid 2px;outline:0;outline:none}.maptiler-ctrl form.can-collapse.svelte-zh3kmv.svelte-zh3kmv{max-width:33px}.maptiler-ctrl form.svelte-zh3kmv.svelte-zh3kmv,.maptiler-ctrl form.svelte-zh3kmv.svelte-zh3kmv:focus-within,.maptiler-ctrl form.svelte-zh3kmv.svelte-zh3kmv:hover{width:270px;max-width:270px}div.svelte-ixhnie{position:absolute;top:20px;left:50px}span.svelte-kzgqtg{display:block;float:left;height:16px;width:30px;margin-right:5px;border:1px solid #999}div.svelte-1uuov7f{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:999;color:#fff;font-size:32px}.ctrl-btn-center.svelte-1s83zbq{display:grid!important;height:100%;width:100%;place-items:center}.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (-ms-high-contrast:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}.maplibregl-ctrl button:not(:disabled):hover{background-color:#0000000d}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23999' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (-ms-high-contrast:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:#0000000d}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:#000000bf;text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:#0000000d}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0,0,0,.4);color:#fff;display:flex;font-size:1.4em;top:0;right:0;bottom:0;left:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(width <= 480px){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}.expand-map.svelte-p00lfq{position:absolute;top:0;bottom:0;left:0;right:0}table.svelte-lh2o9l{border:solid}/*! +@charset "UTF-8";span.svelte-kzgqtg{display:block;float:left;height:16px;width:30px;margin-right:5px;border:1px solid #999}div.svelte-1uuov7f{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:999;color:#fff;font-size:32px}table.svelte-lh2o9l{border:solid}/*! * Pico CSS ✨ v2.0.3 (https://picocss.com) * Copyright 2019-2024 - Licensed under MIT -*/:root{--pico-font-family-emoji:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--pico-font-family-sans-serif:system-ui,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,Helvetica,Arial,"Helvetica Neue",sans-serif,var(--pico-font-family-emoji);--pico-font-family-monospace:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace,var(--pico-font-family-emoji);--pico-font-family:var(--pico-font-family-sans-serif);--pico-line-height:1.5;--pico-font-weight:400;--pico-font-size:100%;--pico-text-underline-offset:.1rem;--pico-border-radius:.25rem;--pico-border-width:.0625rem;--pico-outline-width:.125rem;--pico-transition:.2s ease-in-out;--pico-spacing:1rem;--pico-typography-spacing-vertical:1rem;--pico-block-spacing-vertical:var(--pico-spacing);--pico-block-spacing-horizontal:var(--pico-spacing);--pico-grid-column-gap:var(--pico-spacing);--pico-grid-row-gap:var(--pico-spacing);--pico-form-element-spacing-vertical:.75rem;--pico-form-element-spacing-horizontal:1rem;--pico-group-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-primary-focus);--pico-group-box-shadow-focus-with-input:0 0 0 .0625rem var(--pico-form-element-border-color);--pico-modal-overlay-backdrop-filter:blur(.375rem);--pico-nav-element-spacing-vertical:1rem;--pico-nav-element-spacing-horizontal:.5rem;--pico-nav-link-spacing-vertical:.5rem;--pico-nav-link-spacing-horizontal:.5rem;--pico-nav-breadcrumb-divider:">";--pico-icon-checkbox:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-minus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--pico-icon-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-date:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--pico-icon-time:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--pico-icon-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--pico-icon-loading:url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E")}@media (min-width:576px){:root{--pico-font-size:106.25%}}@media (min-width:768px){:root{--pico-font-size:112.5%}}@media (min-width:1024px){:root{--pico-font-size:118.75%}}@media (min-width:1280px){:root{--pico-font-size:125%}}@media (min-width:1536px){:root{--pico-font-size:131.25%}}a,a.contrast,a.secondary{--pico-text-decoration:underline}small{--pico-font-size:.875em}h1,h2,h3,h4,h5,h6{--pico-font-weight:700}h1{--pico-font-size:2rem;--pico-line-height:1.125;--pico-typography-spacing-top:3rem}h2{--pico-font-size:1.75rem;--pico-line-height:1.15;--pico-typography-spacing-top:2.625rem}h3{--pico-font-size:1.5rem;--pico-line-height:1.175;--pico-typography-spacing-top:2.25rem}h4{--pico-font-size:1.25rem;--pico-line-height:1.2;--pico-typography-spacing-top:1.874rem}h5{--pico-font-size:1.125rem;--pico-line-height:1.225;--pico-typography-spacing-top:1.6875rem}h6{--pico-font-size:1rem;--pico-line-height:1.25;--pico-typography-spacing-top:1.5rem}tfoot td,tfoot th,thead td,thead th{--pico-font-weight:600;--pico-border-width:.1875rem}code,kbd,pre,samp{--pico-font-family:var(--pico-font-family-monospace)}kbd{--pico-font-weight:bolder}:where(select,textarea),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-outline-width:.0625rem}[type=search]{--pico-border-radius:5rem}[type=checkbox],[type=radio]{--pico-border-width:.125rem}[type=checkbox][role=switch]{--pico-border-width:.1875rem}details.dropdown summary:not([role=button]){--pico-outline-width:.0625rem}nav details.dropdown summary:focus-visible{--pico-outline-width:.125rem}[role=search]{--pico-border-radius:5rem}[role=group]:has(button.secondary:focus,[type=submit].secondary:focus,[type=button].secondary:focus,[role=button].secondary:focus),[role=search]:has(button.secondary:focus,[type=submit].secondary:focus,[type=button].secondary:focus,[role=button].secondary:focus){--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}[role=group]:has(button.contrast:focus,[type=submit].contrast:focus,[type=button].contrast:focus,[role=button].contrast:focus),[role=search]:has(button.contrast:focus,[type=submit].contrast:focus,[type=button].contrast:focus,[role=button].contrast:focus){--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-contrast-focus)}[role=group] [role=button],[role=group] [type=button],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=submit],[role=search] button{--pico-form-element-spacing-horizontal:2rem}details summary[role=button]:not(.outline):after{filter:brightness(0) invert(1)}[aria-busy=true]:not(input,select,textarea):is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before{filter:brightness(0) invert(1)}:root:not([data-theme=dark]),[data-theme=light]{--pico-background-color:#fff;--pico-color:#373c44;--pico-text-selection-color:rgba(0, 166, 110, .25);--pico-muted-color:#646b79;--pico-muted-border-color:#e7eaf0;--pico-primary:#007a50;--pico-primary-background:#007a50;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(0, 122, 80, .5);--pico-primary-hover:#005f3d;--pico-primary-hover-background:#006d46;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(0, 166, 110, .5);--pico-primary-inverse:#fff;--pico-secondary:#5d6b89;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(93, 107, 137, .5);--pico-secondary-hover:#48536b;--pico-secondary-hover-background:#48536b;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(93, 107, 137, .25);--pico-secondary-inverse:#fff;--pico-contrast:#181c25;--pico-contrast-background:#181c25;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(24, 28, 37, .5);--pico-contrast-hover:#000;--pico-contrast-hover-background:#000;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-secondary-hover);--pico-contrast-focus:rgba(93, 107, 137, .25);--pico-contrast-inverse:#fff;--pico-box-shadow:.0145rem .029rem .174rem rgba(129, 145, 181, .01698),.0335rem .067rem .402rem rgba(129, 145, 181, .024),.0625rem .125rem .75rem rgba(129, 145, 181, .03),.1125rem .225rem 1.35rem rgba(129, 145, 181, .036),.2085rem .417rem 2.502rem rgba(129, 145, 181, .04302),.5rem 1rem 6rem rgba(129, 145, 181, .06),0 0 0 .0625rem rgba(129, 145, 181, .015);--pico-h1-color:#2d3138;--pico-h2-color:#373c44;--pico-h3-color:#424751;--pico-h4-color:#4d535e;--pico-h5-color:#5c6370;--pico-h6-color:#646b79;--pico-mark-background-color:#fde7c0;--pico-mark-color:#0f1114;--pico-ins-color:#1d6a54;--pico-del-color:#883935;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-button-hover-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111, 120, 135, .0375);--pico-code-background-color:#f3f5f7;--pico-code-color:#646b79;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#fbfcfc;--pico-form-element-selected-background-color:#dfe3eb;--pico-form-element-border-color:#cfd5e2;--pico-form-element-color:#23262c;--pico-form-element-placeholder-color:var(--pico-muted-color);--pico-form-element-active-background-color:#fff;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:.5;--pico-form-element-invalid-border-color:#b86a6b;--pico-form-element-invalid-active-border-color:#c84f48;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#4c9b8a;--pico-form-element-valid-active-border-color:#279977;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#bfc7d9;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-range-border-color:#dfe3eb;--pico-range-active-border-color:#bfc7d9;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:var(--pico-background-color);--pico-card-border-color:var(--pico-muted-border-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#fbfcfc;--pico-dropdown-background-color:#fff;--pico-dropdown-border-color:#eff1f4;--pico-dropdown-box-shadow:var(--pico-box-shadow);--pico-dropdown-color:var(--pico-color);--pico-dropdown-hover-background-color:#eff1f4;--pico-loading-spinner-opacity:.5;--pico-modal-overlay-background-color:rgba(232, 234, 237, .75);--pico-progress-background-color:#dfe3eb;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(76, 155, 138)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(200, 79, 72)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");color-scheme:light}:root:not([data-theme=dark]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]),[data-theme=light] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}@media only screen and (prefers-color-scheme:dark){:root:not([data-theme]){--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:rgba(0, 180, 120, .1875);--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#00b478;--pico-primary-background:#007a50;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(0, 180, 120, .5);--pico-primary-hover:#00cc88;--pico-primary-hover-background:#00895a;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(0, 180, 120, .375);--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(150, 158, 175, .5);--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(144, 158, 190, .25);--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(223, 227, 235, .5);--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:rgba(207, 213, 226, .25);--pico-contrast-inverse:#000;--pico-box-shadow:.0145rem .029rem .174rem rgba(7, 9, 12, .01698),.0335rem .067rem .402rem rgba(7, 9, 12, .024),.0625rem .125rem .75rem rgba(7, 9, 12, .03),.1125rem .225rem 1.35rem rgba(7, 9, 12, .036),.2085rem .417rem 2.502rem rgba(7, 9, 12, .04302),.5rem 1rem 6rem rgba(7, 9, 12, .06),0 0 0 .0625rem rgba(7, 9, 12, .015);--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-button-hover-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111, 120, 135, .0375);--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-dropdown-background-color:#181c25;--pico-dropdown-border-color:#202632;--pico-dropdown-box-shadow:var(--pico-box-shadow);--pico-dropdown-color:var(--pico-color);--pico-dropdown-hover-background-color:#202632;--pico-loading-spinner-opacity:.5;--pico-modal-overlay-background-color:rgba(8, 9, 10, .75);--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(150, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");color-scheme:dark}:root:not([data-theme]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}:root:not([data-theme]) details summary[role=button].contrast:not(.outline):after{filter:brightness(0)}:root:not([data-theme]) [aria-busy=true]:not(input,select,textarea).contrast:is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before{filter:brightness(0)}}[data-theme=dark]{--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:rgba(0, 180, 120, .1875);--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#00b478;--pico-primary-background:#007a50;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(0, 180, 120, .5);--pico-primary-hover:#00cc88;--pico-primary-hover-background:#00895a;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(0, 180, 120, .375);--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(150, 158, 175, .5);--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(144, 158, 190, .25);--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(223, 227, 235, .5);--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:rgba(207, 213, 226, .25);--pico-contrast-inverse:#000;--pico-box-shadow:.0145rem .029rem .174rem rgba(7, 9, 12, .01698),.0335rem .067rem .402rem rgba(7, 9, 12, .024),.0625rem .125rem .75rem rgba(7, 9, 12, .03),.1125rem .225rem 1.35rem rgba(7, 9, 12, .036),.2085rem .417rem 2.502rem rgba(7, 9, 12, .04302),.5rem 1rem 6rem rgba(7, 9, 12, .06),0 0 0 .0625rem rgba(7, 9, 12, .015);--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-button-hover-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111, 120, 135, .0375);--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-dropdown-background-color:#181c25;--pico-dropdown-border-color:#202632;--pico-dropdown-box-shadow:var(--pico-box-shadow);--pico-dropdown-color:var(--pico-color);--pico-dropdown-hover-background-color:#202632;--pico-loading-spinner-opacity:.5;--pico-modal-overlay-background-color:rgba(8, 9, 10, .75);--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(150, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");color-scheme:dark}[data-theme=dark] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}[data-theme=dark] details summary[role=button].contrast:not(.outline):after{filter:brightness(0)}[data-theme=dark] [aria-busy=true]:not(input,select,textarea).contrast:is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before{filter:brightness(0)}[type=checkbox],[type=radio],[type=range],progress{accent-color:var(--pico-primary)}*,:after,:before{box-sizing:border-box;background-repeat:no-repeat}:after,:before{text-decoration:inherit;vertical-align:inherit}:where(:root){-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--pico-background-color);color:var(--pico-color);font-weight:var(--pico-font-weight);font-size:var(--pico-font-size);line-height:var(--pico-line-height);font-family:var(--pico-font-family);text-underline-offset:var(--pico-text-underline-offset);text-rendering:optimizeLegibility;overflow-wrap:break-word;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{width:100%;margin:0}main{display:block}body>footer,body>header,body>main{padding-block:var(--pico-block-spacing-vertical)}section{margin-bottom:var(--pico-block-spacing-vertical)}.container,.container-fluid{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--pico-spacing);padding-left:var(--pico-spacing)}@media (min-width:576px){.container{max-width:510px;padding-right:0;padding-left:0}}@media (min-width:768px){.container{max-width:700px}}@media (min-width:1024px){.container{max-width:950px}}@media (min-width:1280px){.container{max-width:1200px}}@media (min-width:1536px){.container{max-width:1450px}}.grid{grid-column-gap:var(--pico-grid-column-gap);grid-row-gap:var(--pico-grid-row-gap);display:grid;grid-template-columns:1fr}@media (min-width:768px){.grid{grid-template-columns:repeat(auto-fit,minmax(0%,1fr))}}.grid>*{min-width:0}.overflow-auto{overflow:auto}b,strong{font-weight:bolder}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}address,blockquote,dl,ol,p,pre,table,ul{margin-top:0;margin-bottom:var(--pico-typography-spacing-vertical);color:var(--pico-color);font-style:normal;font-weight:var(--pico-font-weight)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--pico-typography-spacing-vertical);color:var(--pico-color);font-weight:var(--pico-font-weight);font-size:var(--pico-font-size);line-height:var(--pico-line-height);font-family:var(--pico-font-family)}h1{--pico-color:var(--pico-h1-color)}h2{--pico-color:var(--pico-h2-color)}h3{--pico-color:var(--pico-h3-color)}h4{--pico-color:var(--pico-h4-color)}h5{--pico-color:var(--pico-h5-color)}h6{--pico-color:var(--pico-h6-color)}:where(article,address,blockquote,dl,figure,form,ol,p,pre,table,ul)~:is(h1,h2,h3,h4,h5,h6){margin-top:var(--pico-typography-spacing-top)}p{margin-bottom:var(--pico-typography-spacing-vertical)}hgroup{margin-bottom:var(--pico-typography-spacing-vertical)}hgroup>*{margin-top:0;margin-bottom:0}hgroup>:not(:first-child):last-child{--pico-color:var(--pico-muted-color);--pico-font-weight:unset;font-size:1rem}:where(ol,ul) li{margin-bottom:calc(var(--pico-typography-spacing-vertical) * .25)}:where(dl,ol,ul) :where(dl,ol,ul){margin:0;margin-top:calc(var(--pico-typography-spacing-vertical) * .25)}ul li{list-style:square}mark{padding:.125rem .25rem;background-color:var(--pico-mark-background-color);color:var(--pico-mark-color);vertical-align:baseline}blockquote{display:block;margin:var(--pico-typography-spacing-vertical) 0;padding:var(--pico-spacing);border-right:none;border-left:.25rem solid var(--pico-blockquote-border-color);border-inline-start:.25rem solid var(--pico-blockquote-border-color);border-inline-end:none}blockquote footer{margin-top:calc(var(--pico-typography-spacing-vertical) * .5);color:var(--pico-blockquote-footer-color)}abbr[title]{border-bottom:1px dotted;text-decoration:none;cursor:help}ins{color:var(--pico-ins-color);text-decoration:none}del{color:var(--pico-del-color)}::-moz-selection{background-color:var(--pico-text-selection-color)}::selection{background-color:var(--pico-text-selection-color)}:where(a:not([role=button])),[role=link]{--pico-color:var(--pico-primary);--pico-background-color:transparent;--pico-underline:var(--pico-primary-underline);outline:0;background-color:var(--pico-background-color);color:var(--pico-color);-webkit-text-decoration:var(--pico-text-decoration);text-decoration:var(--pico-text-decoration);text-decoration-color:var(--pico-underline);text-underline-offset:.125em;transition:background-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition)}:where(a:not([role=button])):is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-primary-hover);--pico-underline:var(--pico-primary-hover-underline);--pico-text-decoration:underline}:where(a:not([role=button])):focus-visible,[role=link]:focus-visible{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}:where(a:not([role=button])).secondary,[role=link].secondary{--pico-color:var(--pico-secondary);--pico-underline:var(--pico-secondary-underline)}:where(a:not([role=button])).secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link].secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-secondary-hover);--pico-underline:var(--pico-secondary-hover-underline)}:where(a:not([role=button])).contrast,[role=link].contrast{--pico-color:var(--pico-contrast);--pico-underline:var(--pico-contrast-underline)}:where(a:not([role=button])).contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link].contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-contrast-hover);--pico-underline:var(--pico-contrast-hover-underline)}a[role=button]{display:inline-block}button{margin:0;overflow:visible;font-family:inherit;text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[role=button],[type=button],[type=file]::file-selector-button,[type=reset],[type=submit],button{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);--pico-color:var(--pico-primary-inverse);--pico-box-shadow:var(--pico-button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);outline:0;background-color:var(--pico-background-color);box-shadow:var(--pico-box-shadow);color:var(--pico-color);font-weight:var(--pico-font-weight);font-size:1rem;line-height:var(--pico-line-height);text-align:center;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition)}[role=button]:is(:hover,:active,:focus),[role=button]:is([aria-current]:not([aria-current=false])),[type=button]:is(:hover,:active,:focus),[type=button]:is([aria-current]:not([aria-current=false])),[type=file]::file-selector-button:is(:hover,:active,:focus),[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])),[type=reset]:is(:hover,:active,:focus),[type=reset]:is([aria-current]:not([aria-current=false])),[type=submit]:is(:hover,:active,:focus),[type=submit]:is([aria-current]:not([aria-current=false])),button:is(:hover,:active,:focus),button:is([aria-current]:not([aria-current=false])){--pico-background-color:var(--pico-primary-hover-background);--pico-border-color:var(--pico-primary-hover-border);--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));--pico-color:var(--pico-primary-inverse)}[role=button]:focus,[role=button]:is([aria-current]:not([aria-current=false])):focus,[type=button]:focus,[type=button]:is([aria-current]:not([aria-current=false])):focus,[type=file]::file-selector-button:focus,[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus,[type=reset]:focus,[type=reset]:is([aria-current]:not([aria-current=false])):focus,[type=submit]:focus,[type=submit]:is([aria-current]:not([aria-current=false])):focus,button:focus,button:is([aria-current]:not([aria-current=false])):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}[type=button],[type=reset],[type=submit]{margin-bottom:var(--pico-spacing)}:is(button,[type=submit],[type=button],[role=button]).secondary,[type=file]::file-selector-button,[type=reset]{--pico-background-color:var(--pico-secondary-background);--pico-border-color:var(--pico-secondary-border);--pico-color:var(--pico-secondary-inverse);cursor:pointer}:is(button,[type=submit],[type=button],[role=button]).secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=file]::file-selector-button:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border);--pico-color:var(--pico-secondary-inverse)}:is(button,[type=submit],[type=button],[role=button]).secondary:focus,:is(button,[type=submit],[type=button],[role=button]).secondary:is([aria-current]:not([aria-current=false])):focus,[type=file]::file-selector-button:focus,[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus,[type=reset]:focus,[type=reset]:is([aria-current]:not([aria-current=false])):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}:is(button,[type=submit],[type=button],[role=button]).contrast{--pico-background-color:var(--pico-contrast-background);--pico-border-color:var(--pico-contrast-border);--pico-color:var(--pico-contrast-inverse)}:is(button,[type=submit],[type=button],[role=button]).contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:var(--pico-contrast-hover-background);--pico-border-color:var(--pico-contrast-hover-border);--pico-color:var(--pico-contrast-inverse)}:is(button,[type=submit],[type=button],[role=button]).contrast:focus,:is(button,[type=submit],[type=button],[role=button]).contrast:is([aria-current]:not([aria-current=false])):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),0 0 0 var(--pico-outline-width) var(--pico-contrast-focus)}:is(button,[type=submit],[type=button],[role=button]).outline,[type=reset].outline{--pico-background-color:transparent;--pico-color:var(--pico-primary);--pico-border-color:var(--pico-primary)}:is(button,[type=submit],[type=button],[role=button]).outline:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset].outline:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:transparent;--pico-color:var(--pico-primary-hover);--pico-border-color:var(--pico-primary-hover)}:is(button,[type=submit],[type=button],[role=button]).outline.secondary,[type=reset].outline{--pico-color:var(--pico-secondary);--pico-border-color:var(--pico-secondary)}:is(button,[type=submit],[type=button],[role=button]).outline.secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset].outline:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-secondary-hover);--pico-border-color:var(--pico-secondary-hover)}:is(button,[type=submit],[type=button],[role=button]).outline.contrast{--pico-color:var(--pico-contrast);--pico-border-color:var(--pico-contrast)}:is(button,[type=submit],[type=button],[role=button]).outline.contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-contrast-hover);--pico-border-color:var(--pico-contrast-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button])[disabled],:where(fieldset[disabled]) :is(button,[type=submit],[type=button],[type=reset],[role=button]){opacity:.5;pointer-events:none}:where(table){width:100%;border-collapse:collapse;border-spacing:0;text-indent:0}td,th{padding:calc(var(--pico-spacing)/ 2) var(--pico-spacing);border-bottom:var(--pico-border-width) solid var(--pico-table-border-color);background-color:var(--pico-background-color);color:var(--pico-color);font-weight:var(--pico-font-weight);text-align:left;text-align:start}tfoot td,tfoot th{border-top:var(--pico-border-width) solid var(--pico-table-border-color);border-bottom:0}table.striped tbody tr:nth-child(odd) td,table.striped tbody tr:nth-child(odd) th{background-color:var(--pico-table-row-stripped-background-color)}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}:where(iframe){border-style:none}img{max-width:100%;height:auto;border-style:none}:where(svg:not([fill])){fill:currentColor}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-size:.875em;font-family:var(--pico-font-family)}pre code{font-size:inherit;font-family:inherit}pre{-ms-overflow-style:scrollbar;overflow:auto}code,kbd,pre{border-radius:var(--pico-border-radius);background:var(--pico-code-background-color);color:var(--pico-code-color);font-weight:var(--pico-font-weight);line-height:initial}code,kbd{display:inline-block;padding:.375rem}pre{display:block;margin-bottom:var(--pico-spacing);overflow-x:auto}pre>code{display:block;padding:var(--pico-spacing);background:0 0;line-height:var(--pico-line-height)}kbd{background-color:var(--pico-code-kbd-background-color);color:var(--pico-code-kbd-color);vertical-align:baseline}figure{display:block;margin:0;padding:0}figure figcaption{padding:calc(var(--pico-spacing) * .5) 0;color:var(--pico-muted-color)}hr{height:0;margin:var(--pico-typography-spacing-vertical) 0;border:0;border-top:1px solid var(--pico-muted-border-color);color:inherit}[hidden],template{display:none!important}canvas{display:inline-block}input,optgroup,select,textarea{margin:0;font-size:1rem;line-height:var(--pico-line-height);font-family:inherit;letter-spacing:inherit}input{overflow:visible}select{text-transform:none}legend{max-width:100%;padding:0;color:inherit;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{padding:0;border-style:none}:-moz-focusring{outline:0}:-moz-ui-invalid{box-shadow:none}::-ms-expand{display:none}[type=file],[type=range]{padding:0;border-width:0}input:not([type=checkbox],[type=radio],[type=range]){height:calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2)}fieldset{width:100%;margin:0;margin-bottom:var(--pico-spacing);padding:0;border:0}fieldset legend,label{display:block;margin-bottom:calc(var(--pico-spacing) * .375);color:var(--pico-color);font-weight:var(--pico-form-label-font-weight,var(--pico-font-weight))}fieldset legend{margin-bottom:calc(var(--pico-spacing) * .5)}button[type=submit],input:not([type=checkbox],[type=radio]),select,textarea{width:100%}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal)}input,select,textarea{--pico-background-color:var(--pico-form-element-background-color);--pico-border-color:var(--pico-form-element-border-color);--pico-color:var(--pico-form-element-color);--pico-box-shadow:none;border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);outline:0;background-color:var(--pico-background-color);box-shadow:var(--pico-box-shadow);color:var(--pico-color);font-weight:var(--pico-font-weight);transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition)}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[readonly]):is(:active,:focus){--pico-background-color:var(--pico-form-element-active-background-color)}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[role=switch],[readonly]):is(:active,:focus){--pico-border-color:var(--pico-form-element-active-border-color)}:where(select,textarea):not([readonly]):focus,input:not([type=submit],[type=button],[type=reset],[type=range],[type=file],[readonly]):focus{--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color)}:where(fieldset[disabled]) :is(input:not([type=submit],[type=button],[type=reset]),select,textarea),input:not([type=submit],[type=button],[type=reset])[disabled],label[aria-disabled=true],select[disabled],textarea[disabled]{opacity:var(--pico-form-element-disabled-opacity);pointer-events:none}label[aria-disabled=true] input[disabled]{opacity:1}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid]{padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;padding-left:var(--pico-form-element-spacing-horizontal);padding-inline-start:var(--pico-form-element-spacing-horizontal)!important;padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=false]:not(select){background-image:var(--pico-icon-valid)}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=true]:not(select){background-image:var(--pico-icon-invalid)}:where(input,select,textarea)[aria-invalid=false]{--pico-border-color:var(--pico-form-element-valid-border-color)}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus){--pico-border-color:var(--pico-form-element-valid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color)!important}:where(input,select,textarea)[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus){--pico-border-color:var(--pico-form-element-invalid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color)!important}[dir=rtl] :where(input,select,textarea):not([type=checkbox],[type=radio]):is([aria-invalid],[aria-invalid=true],[aria-invalid=false]){background-position:center left .75rem}input::-webkit-input-placeholder,input::placeholder,select:invalid,textarea::-webkit-input-placeholder,textarea::placeholder{color:var(--pico-form-element-placeholder-color);opacity:1}input:not([type=checkbox],[type=radio]),select,textarea{margin-bottom:var(--pico-spacing)}select::-ms-expand{border:0;background-color:transparent}select:not([multiple],[size]){padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);padding-left:var(--pico-form-element-spacing-horizontal);padding-inline-start:var(--pico-form-element-spacing-horizontal);padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);background-image:var(--pico-icon-chevron);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}select[multiple] option:checked{background:var(--pico-form-element-selected-background-color)}[dir=rtl] select:not([multiple],[size]){background-position:center left .75rem}textarea{display:block;resize:vertical}textarea[aria-invalid]{--pico-icon-height:calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);background-position:top right .75rem!important;background-size:1rem var(--pico-icon-height)!important}:where(input,select,textarea,fieldset,.grid)+small{display:block;width:100%;margin-top:calc(var(--pico-spacing) * -.75);margin-bottom:var(--pico-spacing);color:var(--pico-muted-color)}:where(input,select,textarea,fieldset,.grid)[aria-invalid=false]+small{color:var(--pico-ins-color)}:where(input,select,textarea,fieldset,.grid)[aria-invalid=true]+small{color:var(--pico-del-color)}label>:where(input,select,textarea){margin-top:calc(var(--pico-spacing) * .25)}label:has([type=checkbox],[type=radio]){width:-moz-fit-content;width:fit-content;cursor:pointer}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.25em;height:1.25em;margin-top:-.125em;margin-inline-end:.5em;border-width:var(--pico-border-width);vertical-align:middle;cursor:pointer}[type=checkbox]::-ms-check,[type=radio]::-ms-check{display:none}[type=checkbox]:checked,[type=checkbox]:checked:active,[type=checkbox]:checked:focus,[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-checkbox);background-position:center;background-size:.75em auto;background-repeat:no-repeat}[type=checkbox]~label,[type=radio]~label{display:inline-block;margin-bottom:0;cursor:pointer}[type=checkbox]~label:not(:last-of-type),[type=radio]~label:not(:last-of-type){margin-inline-end:1em}[type=checkbox]:indeterminate{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-minus);background-position:center;background-size:.75em auto;background-repeat:no-repeat}[type=radio]{border-radius:50%}[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-inverse);border-width:.35em;background-image:none}[type=checkbox][role=switch]{--pico-background-color:var(--pico-switch-background-color);--pico-color:var(--pico-switch-color);width:2.25em;height:1.25em;border:var(--pico-border-width) solid var(--pico-border-color);border-radius:1.25em;background-color:var(--pico-background-color);line-height:1.25em}[type=checkbox][role=switch]:not([aria-invalid]){--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:before{display:block;width:calc(1.25em - var(--pico-border-width) * 2);height:100%;border-radius:50%;background-color:var(--pico-color);box-shadow:var(--pico-switch-thumb-box-shadow);content:"";transition:margin .1s ease-in-out}[type=checkbox][role=switch]:focus{--pico-background-color:var(--pico-switch-background-color);--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:checked{--pico-background-color:var(--pico-switch-checked-background-color);--pico-border-color:var(--pico-switch-checked-background-color);background-image:none}[type=checkbox][role=switch]:checked:before{margin-inline-start:calc(1.125em - var(--pico-border-width))}[type=checkbox][role=switch][disabled]{--pico-background-color:var(--pico-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus{--pico-background-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true]{--pico-background-color:var(--pico-form-element-invalid-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus,[type=radio][aria-invalid=false]:checked,[type=radio][aria-invalid=false]:checked:active,[type=radio][aria-invalid=false]:checked:focus{--pico-border-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true],[type=radio]:checked:active[aria-invalid=true],[type=radio]:checked:focus[aria-invalid=true],[type=radio]:checked[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}[type=color]::-webkit-color-swatch-wrapper{padding:0}[type=color]::-moz-focus-inner{padding:0}[type=color]::-webkit-color-swatch{border:0;border-radius:calc(var(--pico-border-radius) * .5)}[type=color]::-moz-color-swatch{border:0;border-radius:calc(var(--pico-border-radius) * .5)}input:not([type=checkbox],[type=radio],[type=range],[type=file]):is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){--pico-icon-position:.75rem;--pico-icon-width:1rem;padding-right:calc(var(--pico-icon-width) + var(--pico-icon-position));background-image:var(--pico-icon-date);background-position:center right var(--pico-icon-position);background-size:var(--pico-icon-width) auto;background-repeat:no-repeat}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=time]{background-image:var(--pico-icon-time)}[type=date]::-webkit-calendar-picker-indicator,[type=datetime-local]::-webkit-calendar-picker-indicator,[type=month]::-webkit-calendar-picker-indicator,[type=time]::-webkit-calendar-picker-indicator,[type=week]::-webkit-calendar-picker-indicator{width:var(--pico-icon-width);margin-right:calc(var(--pico-icon-width) * -1);margin-left:var(--pico-icon-position);opacity:0}@-moz-document url-prefix(){[type=date],[type=datetime-local],[type=month],[type=time],[type=week]{padding-right:var(--pico-form-element-spacing-horizontal)!important;background-image:none!important}}[dir=rtl] :is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){text-align:right}[type=file]{--pico-color:var(--pico-muted-color);margin-left:calc(var(--pico-outline-width) * -1);padding:calc(var(--pico-form-element-spacing-vertical) * .5) 0;padding-left:var(--pico-outline-width);border:0;border-radius:0;background:0 0}[type=file]::file-selector-button{margin-right:calc(var(--pico-spacing)/ 2);padding:calc(var(--pico-form-element-spacing-vertical) * .5) var(--pico-form-element-spacing-horizontal)}[type=file]:is(:hover,:active,:focus)::file-selector-button{--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border)}[type=file]:focus::file-selector-button{--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:1.25rem;background:0 0}[type=range]::-webkit-slider-runnable-track{width:100%;height:.375rem;border-radius:var(--pico-border-radius);background-color:var(--pico-range-border-color);-webkit-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition)}[type=range]::-moz-range-track{width:100%;height:.375rem;border-radius:var(--pico-border-radius);background-color:var(--pico-range-border-color);-moz-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition)}[type=range]::-ms-track{width:100%;height:.375rem;border-radius:var(--pico-border-radius);background-color:var(--pico-range-border-color);-ms-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition)}[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:1.25rem;height:1.25rem;margin-top:-.4375rem;border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;background-color:var(--pico-range-thumb-color);cursor:pointer;-webkit-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition)}[type=range]::-moz-range-thumb{-webkit-appearance:none;width:1.25rem;height:1.25rem;margin-top:-.4375rem;border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;background-color:var(--pico-range-thumb-color);cursor:pointer;-moz-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition)}[type=range]::-ms-thumb{-webkit-appearance:none;width:1.25rem;height:1.25rem;margin-top:-.4375rem;border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;background-color:var(--pico-range-thumb-color);cursor:pointer;-ms-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition)}[type=range]:active,[type=range]:focus-within{--pico-range-border-color:var(--pico-range-active-border-color);--pico-range-thumb-color:var(--pico-range-thumb-active-color)}[type=range]:active::-webkit-slider-thumb{transform:scale(1.25)}[type=range]:active::-moz-range-thumb{transform:scale(1.25)}[type=range]:active::-ms-thumb{transform:scale(1.25)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);background-image:var(--pico-icon-search);background-position:center left calc(var(--pico-form-element-spacing-horizontal) + .125rem);background-size:1rem auto;background-repeat:no-repeat}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem)!important;background-position:center left 1.125rem,center right .75rem}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=false]{background-image:var(--pico-icon-search),var(--pico-icon-valid)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=true]{background-image:var(--pico-icon-search),var(--pico-icon-invalid)}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{background-position:center right 1.125rem}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{background-position:center right 1.125rem,center left .75rem}details{display:block;margin-bottom:var(--pico-spacing)}details summary{line-height:1rem;list-style-type:none;cursor:pointer;transition:color var(--pico-transition)}details summary:not([role]){color:var(--pico-accordion-close-summary-color)}details summary::-webkit-details-marker{display:none}details summary::marker{display:none}details summary::-moz-list-bullet{list-style-type:none}details summary:after{display:block;width:1rem;height:1rem;margin-inline-start:calc(var(--pico-spacing,1rem) * .5);float:right;transform:rotate(-90deg);background-image:var(--pico-icon-chevron);background-position:right center;background-size:1rem auto;background-repeat:no-repeat;content:"";transition:transform var(--pico-transition)}details summary:focus{outline:0}details summary:focus:not([role]){color:var(--pico-accordion-active-summary-color)}details summary:focus-visible:not([role]){outline:var(--pico-outline-width) solid var(--pico-primary-focus);outline-offset:calc(var(--pico-spacing,1rem) * .5);color:var(--pico-primary)}details summary[role=button]{width:100%;text-align:left}details summary[role=button]:after{height:calc(1rem * var(--pico-line-height,1.5))}details[open]>summary{margin-bottom:var(--pico-spacing)}details[open]>summary:not([role]):not(:focus){color:var(--pico-accordion-open-summary-color)}details[open]>summary:after{transform:rotate(0)}[dir=rtl] details summary{text-align:right}[dir=rtl] details summary:after{float:left;background-position:left center}article{margin-bottom:var(--pico-block-spacing-vertical);padding:var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);border-radius:var(--pico-border-radius);background:var(--pico-card-background-color);box-shadow:var(--pico-card-box-shadow)}article>footer,article>header{margin-right:calc(var(--pico-block-spacing-horizontal) * -1);margin-left:calc(var(--pico-block-spacing-horizontal) * -1);padding:calc(var(--pico-block-spacing-vertical) * .66) var(--pico-block-spacing-horizontal);background-color:var(--pico-card-sectioning-background-color)}article>header{margin-top:calc(var(--pico-block-spacing-vertical) * -1);margin-bottom:var(--pico-block-spacing-vertical);border-bottom:var(--pico-border-width) solid var(--pico-card-border-color);border-top-right-radius:var(--pico-border-radius);border-top-left-radius:var(--pico-border-radius)}article>footer{margin-top:var(--pico-block-spacing-vertical);margin-bottom:calc(var(--pico-block-spacing-vertical) * -1);border-top:var(--pico-border-width) solid var(--pico-card-border-color);border-bottom-right-radius:var(--pico-border-radius);border-bottom-left-radius:var(--pico-border-radius)}details.dropdown{position:relative;border-bottom:none}details.dropdown summary:after,details.dropdown>a:after,details.dropdown>button:after{display:block;width:1rem;height:calc(1rem * var(--pico-line-height,1.5));margin-inline-start:.25rem;float:right;transform:rotate(0) translate(.2rem);background-image:var(--pico-icon-chevron);background-position:right center;background-size:1rem auto;background-repeat:no-repeat;content:""}nav details.dropdown{margin-bottom:0}details.dropdown summary:not([role]){height:calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);border:var(--pico-border-width) solid var(--pico-form-element-border-color);border-radius:var(--pico-border-radius);background-color:var(--pico-form-element-background-color);color:var(--pico-form-element-placeholder-color);line-height:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition)}details.dropdown summary:not([role]):active,details.dropdown summary:not([role]):focus{border-color:var(--pico-form-element-active-border-color);background-color:var(--pico-form-element-active-background-color)}details.dropdown summary:not([role]):focus{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color)}details.dropdown summary:not([role]):focus-visible{outline:0}details.dropdown summary:not([role])[aria-invalid=false]{--pico-form-element-border-color:var(--pico-form-element-valid-border-color);--pico-form-element-active-border-color:var(--pico-form-element-valid-focus-color);--pico-form-element-focus-color:var(--pico-form-element-valid-focus-color)}details.dropdown summary:not([role])[aria-invalid=true]{--pico-form-element-border-color:var(--pico-form-element-invalid-border-color);--pico-form-element-active-border-color:var(--pico-form-element-invalid-focus-color);--pico-form-element-focus-color:var(--pico-form-element-invalid-focus-color)}nav details.dropdown{display:inline;margin:calc(var(--pico-nav-element-spacing-vertical) * -1) 0}nav details.dropdown summary:after{transform:rotate(0) translate(0)}nav details.dropdown summary:not([role]){height:calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 2);padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal)}nav details.dropdown summary:not([role]):focus-visible{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}details.dropdown summary+ul{display:flex;z-index:99;position:absolute;left:0;flex-direction:column;width:100%;min-width:-moz-fit-content;min-width:fit-content;margin:0;margin-top:var(--pico-outline-width);padding:0;border:var(--pico-border-width) solid var(--pico-dropdown-border-color);border-radius:var(--pico-border-radius);background-color:var(--pico-dropdown-background-color);box-shadow:var(--pico-dropdown-box-shadow);color:var(--pico-dropdown-color);white-space:nowrap;opacity:0;transition:opacity var(--pico-transition),transform 0s ease-in-out 1s}details.dropdown summary+ul[dir=rtl]{right:0;left:auto}details.dropdown summary+ul li{width:100%;margin-bottom:0;padding:calc(var(--pico-form-element-spacing-vertical) * .5) var(--pico-form-element-spacing-horizontal);list-style:none}details.dropdown summary+ul li:first-of-type{margin-top:calc(var(--pico-form-element-spacing-vertical) * .5)}details.dropdown summary+ul li:last-of-type{margin-bottom:calc(var(--pico-form-element-spacing-vertical) * .5)}details.dropdown summary+ul li a{display:block;margin:calc(var(--pico-form-element-spacing-vertical) * -.5) calc(var(--pico-form-element-spacing-horizontal) * -1);padding:calc(var(--pico-form-element-spacing-vertical) * .5) var(--pico-form-element-spacing-horizontal);overflow:hidden;border-radius:0;color:var(--pico-dropdown-color);text-decoration:none;text-overflow:ellipsis}details.dropdown summary+ul li a:active,details.dropdown summary+ul li a:focus,details.dropdown summary+ul li a:focus-visible,details.dropdown summary+ul li a:hover,details.dropdown summary+ul li a[aria-current]:not([aria-current=false]){background-color:var(--pico-dropdown-hover-background-color)}details.dropdown summary+ul li label{width:100%}details.dropdown summary+ul li:has(label):hover{background-color:var(--pico-dropdown-hover-background-color)}details.dropdown[open] summary{margin-bottom:0}details.dropdown[open] summary+ul{transform:scaleY(1);opacity:1;transition:opacity var(--pico-transition),transform 0s ease-in-out 0s}details.dropdown[open] summary:before{display:block;z-index:1;position:fixed;width:100vw;height:100vh;top:0;right:0;bottom:0;left:0;background:0 0;content:"";cursor:default}label>details.dropdown{margin-top:calc(var(--pico-spacing) * .25)}[role=group],[role=search]{display:inline-flex;position:relative;width:100%;margin-bottom:var(--pico-spacing);border-radius:var(--pico-border-radius);box-shadow:var(--pico-group-box-shadow,0 0 0 transparent);vertical-align:middle;transition:box-shadow var(--pico-transition)}[role=group] input:not([type=checkbox],[type=radio]),[role=group] select,[role=group]>*,[role=search] input:not([type=checkbox],[type=radio]),[role=search] select,[role=search]>*{position:relative;flex:1 1 auto;margin-bottom:0}[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=group]>:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child),[role=search]>:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}[role=group] input:not([type=checkbox],[type=radio]):not(:last-child),[role=group] select:not(:last-child),[role=group]>:not(:last-child),[role=search] input:not([type=checkbox],[type=radio]):not(:last-child),[role=search] select:not(:last-child),[role=search]>:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}[role=group] input:not([type=checkbox],[type=radio]):focus,[role=group] select:focus,[role=group]>:focus,[role=search] input:not([type=checkbox],[type=radio]):focus,[role=search] select:focus,[role=search]>:focus{z-index:2}[role=group] [role=button]:not(:first-child),[role=group] [type=button]:not(:first-child),[role=group] [type=reset]:not(:first-child),[role=group] [type=submit]:not(:first-child),[role=group] button:not(:first-child),[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=search] [role=button]:not(:first-child),[role=search] [type=button]:not(:first-child),[role=search] [type=reset]:not(:first-child),[role=search] [type=submit]:not(:first-child),[role=search] button:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child){margin-left:calc(var(--pico-border-width) * -1)}[role=group] [role=button],[role=group] [type=button],[role=group] [type=reset],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=reset],[role=search] [type=submit],[role=search] button{width:auto}@supports selector(:has(*)){[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-button)}[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select,[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select{border-color:transparent}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus),[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-input)}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) button,[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) button{--pico-button-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-border);--pico-button-hover-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-hover-border)}[role=group] [role=button]:focus,[role=group] [type=button]:focus,[role=group] [type=reset]:focus,[role=group] [type=submit]:focus,[role=group] button:focus,[role=search] [role=button]:focus,[role=search] [type=button]:focus,[role=search] [type=reset]:focus,[role=search] [type=submit]:focus,[role=search] button:focus{box-shadow:none}}[role=search]>:first-child{border-top-left-radius:5rem;border-bottom-left-radius:5rem}[role=search]>:last-child{border-top-right-radius:5rem;border-bottom-right-radius:5rem}[aria-busy=true]:not(input,select,textarea,html){white-space:nowrap}[aria-busy=true]:not(input,select,textarea,html):before{display:inline-block;width:1em;height:1em;background-image:var(--pico-icon-loading);background-size:1rem auto;background-repeat:no-repeat;content:"";vertical-align:-.125em}[aria-busy=true]:not(input,select,textarea,html):not(:empty):before{margin-inline-end:calc(var(--pico-spacing) * .5)}[aria-busy=true]:not(input,select,textarea,html):empty{text-align:center}[role=button][aria-busy=true],[type=button][aria-busy=true],[type=reset][aria-busy=true],[type=submit][aria-busy=true],a[aria-busy=true],button[aria-busy=true]{pointer-events:none}:root{--pico-scrollbar-width:0px}dialog{display:flex;z-index:999;position:fixed;top:0;right:0;bottom:0;left:0;align-items:center;justify-content:center;width:inherit;min-width:100%;height:inherit;min-height:100%;padding:0;border:0;-webkit-backdrop-filter:var(--pico-modal-overlay-backdrop-filter);backdrop-filter:var(--pico-modal-overlay-backdrop-filter);background-color:var(--pico-modal-overlay-background-color);color:var(--pico-color)}dialog article{width:100%;max-height:calc(100vh - var(--pico-spacing) * 2);margin:var(--pico-spacing);overflow:auto}@media (min-width:576px){dialog article{max-width:510px}}@media (min-width:768px){dialog article{max-width:700px}}dialog article>header>*{margin-bottom:0}dialog article>header .close,dialog article>header :is(a,button)[rel=prev]{margin:0;margin-left:var(--pico-spacing);padding:0;float:right}dialog article>footer{text-align:right}dialog article>footer [role=button],dialog article>footer button{margin-bottom:0}dialog article>footer [role=button]:not(:first-of-type),dialog article>footer button:not(:first-of-type){margin-left:calc(var(--pico-spacing) * .5)}dialog article .close,dialog article :is(a,button)[rel=prev]{display:block;width:1rem;height:1rem;margin-top:calc(var(--pico-spacing) * -1);margin-bottom:var(--pico-spacing);margin-left:auto;border:none;background-image:var(--pico-icon-close);background-position:center;background-size:auto 1rem;background-repeat:no-repeat;background-color:transparent;opacity:.5;transition:opacity var(--pico-transition)}dialog article .close:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),dialog article :is(a,button)[rel=prev]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){opacity:1}dialog:not([open]),dialog[open=false]{display:none}.modal-is-open{padding-right:var(--pico-scrollbar-width,0);overflow:hidden;pointer-events:none;touch-action:none}.modal-is-open dialog{pointer-events:auto;touch-action:auto}:where(.modal-is-opening,.modal-is-closing) dialog,:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:both}:where(.modal-is-opening,.modal-is-closing) dialog{animation-duration:.8s;animation-name:modal-overlay}:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-delay:.2s;animation-name:modal}.modal-is-closing dialog,.modal-is-closing dialog>article{animation-delay:0s;animation-direction:reverse}@keyframes modal-overlay{0%{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:transparent}}@keyframes modal{0%{transform:translateY(-100%);opacity:0}}:where(nav li):before{float:left;content:"​"}nav,nav ul{display:flex}nav{justify-content:space-between;overflow:visible}nav ol,nav ul{align-items:center;margin-bottom:0;padding:0;list-style:none}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav li{display:inline-block;margin:0;padding:var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal)}nav li :where(a,[role=link]){display:inline-block;margin:calc(var(--pico-nav-link-spacing-vertical) * -1) calc(var(--pico-nav-link-spacing-horizontal) * -1);padding:var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);border-radius:var(--pico-border-radius)}nav li :where(a,[role=link]):not(:hover){text-decoration:none}nav li [role=button],nav li button,nav li input:not([type=checkbox],[type=radio],[type=range],[type=file]),nav li select{height:auto;margin-right:inherit;margin-bottom:0;margin-left:inherit;padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li a{margin:calc(var(--pico-nav-link-spacing-vertical) * -1) 0;margin-inline-start:calc(var(--pico-nav-link-spacing-horizontal) * -1)}nav[aria-label=breadcrumb] ul li:not(:last-child):after{display:inline-block;position:absolute;width:calc(var(--pico-nav-link-spacing-horizontal) * 4);margin:0 calc(var(--pico-nav-link-spacing-horizontal) * -1);content:var(--pico-nav-breadcrumb-divider);color:var(--pico-muted-color);text-align:center;text-decoration:none;white-space:nowrap}nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]){background-color:transparent;color:inherit;text-decoration:none;pointer-events:none}aside li,aside nav,aside ol,aside ul{display:block}aside li{padding:calc(var(--pico-nav-element-spacing-vertical) * .5) var(--pico-nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) :after{content:"\\"}progress{display:inline-block;vertical-align:baseline}progress{-webkit-appearance:none;-moz-appearance:none;display:inline-block;appearance:none;width:100%;height:.5rem;margin-bottom:calc(var(--pico-spacing) * .5);overflow:hidden;border:0;border-radius:var(--pico-border-radius);background-color:var(--pico-progress-background-color);color:var(--pico-progress-color)}progress::-webkit-progress-bar{border-radius:var(--pico-border-radius);background:0 0}progress[value]::-webkit-progress-value{background-color:var(--pico-progress-color);-webkit-transition:inline-size var(--pico-transition);transition:inline-size var(--pico-transition)}progress::-moz-progress-bar{background-color:var(--pico-progress-color)}@media (prefers-reduced-motion:no-preference){progress:indeterminate{background:var(--pico-progress-background-color) linear-gradient(to right,var(--pico-progress-color) 30%,var(--pico-progress-background-color) 30%) top left/150% 150% no-repeat;animation:progress-indeterminate 1s linear infinite}progress:indeterminate[value]::-webkit-progress-value{background-color:transparent}progress:indeterminate::-moz-progress-bar{background-color:transparent}}@media (prefers-reduced-motion:no-preference){[dir=rtl] progress:indeterminate{animation-direction:reverse}}@keyframes progress-indeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}[data-tooltip]{position:relative}[data-tooltip]:not(a,button,input){border-bottom:1px dotted;text-decoration:none;cursor:help}[data-tooltip]:after,[data-tooltip]:before,[data-tooltip][data-placement=top]:after,[data-tooltip][data-placement=top]:before{display:block;z-index:99;position:absolute;bottom:100%;left:50%;padding:.25rem .5rem;overflow:hidden;transform:translate(-50%,-.25rem);border-radius:var(--pico-border-radius);background:var(--pico-tooltip-background-color);content:attr(data-tooltip);color:var(--pico-tooltip-color);font-style:normal;font-weight:var(--pico-font-weight);font-size:.875rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;opacity:0;pointer-events:none}[data-tooltip]:after,[data-tooltip][data-placement=top]:after{padding:0;transform:translate(-50%);border-top:.3rem solid;border-right:.3rem solid transparent;border-left:.3rem solid transparent;border-radius:0;background-color:transparent;content:"";color:var(--pico-tooltip-background-color)}[data-tooltip][data-placement=bottom]:after,[data-tooltip][data-placement=bottom]:before{top:100%;bottom:auto;transform:translate(-50%,.25rem)}[data-tooltip][data-placement=bottom]:after{transform:translate(-50%,-.3rem);border:.3rem solid transparent;border-bottom:.3rem solid}[data-tooltip][data-placement=left]:after,[data-tooltip][data-placement=left]:before{top:50%;right:100%;bottom:auto;left:auto;transform:translate(-.25rem,-50%)}[data-tooltip][data-placement=left]:after{transform:translate(.3rem,-50%);border:.3rem solid transparent;border-left:.3rem solid}[data-tooltip][data-placement=right]:after,[data-tooltip][data-placement=right]:before{top:50%;right:auto;bottom:auto;left:100%;transform:translate(.25rem,-50%)}[data-tooltip][data-placement=right]:after{transform:translate(-.3rem,-50%);border:.3rem solid transparent;border-right:.3rem solid}[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{opacity:1}@media (hover:hover) and (pointer:fine){[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{--pico-tooltip-slide-to:translate(-50%, -.25rem);transform:translate(-50%,.75rem);animation-duration:.2s;animation-fill-mode:forwards;animation-name:tooltip-slide;opacity:0}[data-tooltip]:focus:after,[data-tooltip]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%, 0rem);transform:translate(-50%,-.25rem);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:focus:before,[data-tooltip][data-placement=bottom]:hover:after,[data-tooltip][data-placement=bottom]:hover:before{--pico-tooltip-slide-to:translate(-50%, .25rem);transform:translate(-50%,-.75rem);animation-name:tooltip-slide}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%, -.3rem);transform:translate(-50%,-.5rem);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:focus:before,[data-tooltip][data-placement=left]:hover:after,[data-tooltip][data-placement=left]:hover:before{--pico-tooltip-slide-to:translate(-.25rem, -50%);transform:translate(.75rem,-50%);animation-name:tooltip-slide}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:hover:after{--pico-tooltip-caret-slide-to:translate(.3rem, -50%);transform:translate(.05rem,-50%);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:focus:before,[data-tooltip][data-placement=right]:hover:after,[data-tooltip][data-placement=right]:hover:before{--pico-tooltip-slide-to:translate(.25rem, -50%);transform:translate(-.75rem,-50%);animation-name:tooltip-slide}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:hover:after{--pico-tooltip-caret-slide-to:translate(-.3rem, -50%);transform:translate(-.05rem,-50%);animation-name:tooltip-caret-slide}}@keyframes tooltip-slide{to{transform:var(--pico-tooltip-slide-to);opacity:1}}@keyframes tooltip-caret-slide{50%{opacity:0}to{transform:var(--pico-tooltip-caret-slide-to);opacity:1}}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);position:absolute}[tabindex],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}@media (prefers-reduced-motion:reduce){:not([aria-busy=true]),:not([aria-busy=true]):after,:not([aria-busy=true]):before{background-attachment:initial!important;animation-duration:1ms!important;animation-delay:-1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important}}div.svelte-3nmiww{float:left}.top.svelte-3nmiww{width:100%;height:10vh}.left.svelte-3nmiww{width:25%;height:90vh;overflow:auto;padding:8px}.main.svelte-3nmiww{width:75%;height:90vh}.popup .maplibregl-popup-content{background-color:var(--pico-background-color)}.dot.svelte-1gcxp27{width:30px;height:30px;border-radius:50%;display:flex;justify-content:center;align-items:center;background-color:gray;font-weight:700} +*/:root{--pico-font-family-emoji:"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--pico-font-family-sans-serif:system-ui,"Segoe UI",Roboto,Oxygen,Ubuntu,Cantarell,Helvetica,Arial,"Helvetica Neue",sans-serif,var(--pico-font-family-emoji);--pico-font-family-monospace:ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,"Liberation Mono",monospace,var(--pico-font-family-emoji);--pico-font-family:var(--pico-font-family-sans-serif);--pico-line-height:1.5;--pico-font-weight:400;--pico-font-size:100%;--pico-text-underline-offset:.1rem;--pico-border-radius:.25rem;--pico-border-width:.0625rem;--pico-outline-width:.125rem;--pico-transition:.2s ease-in-out;--pico-spacing:1rem;--pico-typography-spacing-vertical:1rem;--pico-block-spacing-vertical:var(--pico-spacing);--pico-block-spacing-horizontal:var(--pico-spacing);--pico-grid-column-gap:var(--pico-spacing);--pico-grid-row-gap:var(--pico-spacing);--pico-form-element-spacing-vertical:.75rem;--pico-form-element-spacing-horizontal:1rem;--pico-group-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-primary-focus);--pico-group-box-shadow-focus-with-input:0 0 0 .0625rem var(--pico-form-element-border-color);--pico-modal-overlay-backdrop-filter:blur(.375rem);--pico-nav-element-spacing-vertical:1rem;--pico-nav-element-spacing-horizontal:.5rem;--pico-nav-link-spacing-vertical:.5rem;--pico-nav-link-spacing-horizontal:.5rem;--pico-nav-breadcrumb-divider:">";--pico-icon-checkbox:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-minus:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(255, 255, 255)' stroke-width='4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'%3E%3C/line%3E%3C/svg%3E");--pico-icon-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-date:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2' ry='2'%3E%3C/rect%3E%3Cline x1='16' y1='2' x2='16' y2='6'%3E%3C/line%3E%3Cline x1='8' y1='2' x2='8' y2='6'%3E%3C/line%3E%3Cline x1='3' y1='10' x2='21' y2='10'%3E%3C/line%3E%3C/svg%3E");--pico-icon-time:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cpolyline points='12 6 12 12 16 14'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-search:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E");--pico-icon-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(136, 145, 164)' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'%3E%3C/line%3E%3Cline x1='6' y1='6' x2='18' y2='18'%3E%3C/line%3E%3C/svg%3E");--pico-icon-loading:url("data:image/svg+xml,%3Csvg fill='none' height='24' width='24' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' %3E%3Cstyle%3E g %7B animation: rotate 2s linear infinite; transform-origin: center center; %7D circle %7B stroke-dasharray: 75,100; stroke-dashoffset: -5; animation: dash 1.5s ease-in-out infinite; stroke-linecap: round; %7D @keyframes rotate %7B 0%25 %7B transform: rotate(0deg); %7D 100%25 %7B transform: rotate(360deg); %7D %7D @keyframes dash %7B 0%25 %7B stroke-dasharray: 1,100; stroke-dashoffset: 0; %7D 50%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -17.5; %7D 100%25 %7B stroke-dasharray: 44.5,100; stroke-dashoffset: -62; %7D %7D %3C/style%3E%3Cg%3E%3Ccircle cx='12' cy='12' r='10' fill='none' stroke='rgb(136, 145, 164)' stroke-width='4' /%3E%3C/g%3E%3C/svg%3E")}@media (min-width:576px){:root{--pico-font-size:106.25%}}@media (min-width:768px){:root{--pico-font-size:112.5%}}@media (min-width:1024px){:root{--pico-font-size:118.75%}}@media (min-width:1280px){:root{--pico-font-size:125%}}@media (min-width:1536px){:root{--pico-font-size:131.25%}}a,a.contrast,a.secondary{--pico-text-decoration:underline}small{--pico-font-size:.875em}h1,h2,h3,h4,h5,h6{--pico-font-weight:700}h1{--pico-font-size:2rem;--pico-line-height:1.125;--pico-typography-spacing-top:3rem}h2{--pico-font-size:1.75rem;--pico-line-height:1.15;--pico-typography-spacing-top:2.625rem}h3{--pico-font-size:1.5rem;--pico-line-height:1.175;--pico-typography-spacing-top:2.25rem}h4{--pico-font-size:1.25rem;--pico-line-height:1.2;--pico-typography-spacing-top:1.874rem}h5{--pico-font-size:1.125rem;--pico-line-height:1.225;--pico-typography-spacing-top:1.6875rem}h6{--pico-font-size:1rem;--pico-line-height:1.25;--pico-typography-spacing-top:1.5rem}tfoot td,tfoot th,thead td,thead th{--pico-font-weight:600;--pico-border-width:.1875rem}code,kbd,pre,samp{--pico-font-family:var(--pico-font-family-monospace)}kbd{--pico-font-weight:bolder}:where(select,textarea),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-outline-width:.0625rem}[type=search]{--pico-border-radius:5rem}[type=checkbox],[type=radio]{--pico-border-width:.125rem}[type=checkbox][role=switch]{--pico-border-width:.1875rem}details.dropdown summary:not([role=button]){--pico-outline-width:.0625rem}nav details.dropdown summary:focus-visible{--pico-outline-width:.125rem}[role=search]{--pico-border-radius:5rem}[role=group]:has(button.secondary:focus,[type=submit].secondary:focus,[type=button].secondary:focus,[role=button].secondary:focus),[role=search]:has(button.secondary:focus,[type=submit].secondary:focus,[type=button].secondary:focus,[role=button].secondary:focus){--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}[role=group]:has(button.contrast:focus,[type=submit].contrast:focus,[type=button].contrast:focus,[role=button].contrast:focus),[role=search]:has(button.contrast:focus,[type=submit].contrast:focus,[type=button].contrast:focus,[role=button].contrast:focus){--pico-group-box-shadow-focus-with-button:0 0 0 var(--pico-outline-width) var(--pico-contrast-focus)}[role=group] [role=button],[role=group] [type=button],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=submit],[role=search] button{--pico-form-element-spacing-horizontal:2rem}details summary[role=button]:not(.outline):after{filter:brightness(0) invert(1)}[aria-busy=true]:not(input,select,textarea):is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before{filter:brightness(0) invert(1)}:root:not([data-theme=dark]),[data-theme=light]{--pico-background-color:#fff;--pico-color:#373c44;--pico-text-selection-color:rgba(0, 166, 110, .25);--pico-muted-color:#646b79;--pico-muted-border-color:#e7eaf0;--pico-primary:#007a50;--pico-primary-background:#007a50;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(0, 122, 80, .5);--pico-primary-hover:#005f3d;--pico-primary-hover-background:#006d46;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(0, 166, 110, .5);--pico-primary-inverse:#fff;--pico-secondary:#5d6b89;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(93, 107, 137, .5);--pico-secondary-hover:#48536b;--pico-secondary-hover-background:#48536b;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(93, 107, 137, .25);--pico-secondary-inverse:#fff;--pico-contrast:#181c25;--pico-contrast-background:#181c25;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(24, 28, 37, .5);--pico-contrast-hover:#000;--pico-contrast-hover-background:#000;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-secondary-hover);--pico-contrast-focus:rgba(93, 107, 137, .25);--pico-contrast-inverse:#fff;--pico-box-shadow:.0145rem .029rem .174rem rgba(129, 145, 181, .01698),.0335rem .067rem .402rem rgba(129, 145, 181, .024),.0625rem .125rem .75rem rgba(129, 145, 181, .03),.1125rem .225rem 1.35rem rgba(129, 145, 181, .036),.2085rem .417rem 2.502rem rgba(129, 145, 181, .04302),.5rem 1rem 6rem rgba(129, 145, 181, .06),0 0 0 .0625rem rgba(129, 145, 181, .015);--pico-h1-color:#2d3138;--pico-h2-color:#373c44;--pico-h3-color:#424751;--pico-h4-color:#4d535e;--pico-h5-color:#5c6370;--pico-h6-color:#646b79;--pico-mark-background-color:#fde7c0;--pico-mark-color:#0f1114;--pico-ins-color:#1d6a54;--pico-del-color:#883935;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-button-hover-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111, 120, 135, .0375);--pico-code-background-color:#f3f5f7;--pico-code-color:#646b79;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#fbfcfc;--pico-form-element-selected-background-color:#dfe3eb;--pico-form-element-border-color:#cfd5e2;--pico-form-element-color:#23262c;--pico-form-element-placeholder-color:var(--pico-muted-color);--pico-form-element-active-background-color:#fff;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:.5;--pico-form-element-invalid-border-color:#b86a6b;--pico-form-element-invalid-active-border-color:#c84f48;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#4c9b8a;--pico-form-element-valid-active-border-color:#279977;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#bfc7d9;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-range-border-color:#dfe3eb;--pico-range-active-border-color:#bfc7d9;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:var(--pico-background-color);--pico-card-border-color:var(--pico-muted-border-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#fbfcfc;--pico-dropdown-background-color:#fff;--pico-dropdown-border-color:#eff1f4;--pico-dropdown-box-shadow:var(--pico-box-shadow);--pico-dropdown-color:var(--pico-color);--pico-dropdown-hover-background-color:#eff1f4;--pico-loading-spinner-opacity:.5;--pico-modal-overlay-background-color:rgba(232, 234, 237, .75);--pico-progress-background-color:#dfe3eb;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(76, 155, 138)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(200, 79, 72)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");color-scheme:light}:root:not([data-theme=dark]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]),[data-theme=light] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}@media only screen and (prefers-color-scheme:dark){:root:not([data-theme]){--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:rgba(0, 180, 120, .1875);--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#00b478;--pico-primary-background:#007a50;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(0, 180, 120, .5);--pico-primary-hover:#00cc88;--pico-primary-hover-background:#00895a;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(0, 180, 120, .375);--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(150, 158, 175, .5);--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(144, 158, 190, .25);--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(223, 227, 235, .5);--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:rgba(207, 213, 226, .25);--pico-contrast-inverse:#000;--pico-box-shadow:.0145rem .029rem .174rem rgba(7, 9, 12, .01698),.0335rem .067rem .402rem rgba(7, 9, 12, .024),.0625rem .125rem .75rem rgba(7, 9, 12, .03),.1125rem .225rem 1.35rem rgba(7, 9, 12, .036),.2085rem .417rem 2.502rem rgba(7, 9, 12, .04302),.5rem 1rem 6rem rgba(7, 9, 12, .06),0 0 0 .0625rem rgba(7, 9, 12, .015);--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-button-hover-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111, 120, 135, .0375);--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-dropdown-background-color:#181c25;--pico-dropdown-border-color:#202632;--pico-dropdown-box-shadow:var(--pico-box-shadow);--pico-dropdown-color:var(--pico-color);--pico-dropdown-hover-background-color:#202632;--pico-loading-spinner-opacity:.5;--pico-modal-overlay-background-color:rgba(8, 9, 10, .75);--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(150, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");color-scheme:dark}:root:not([data-theme]) input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}:root:not([data-theme]) details summary[role=button].contrast:not(.outline):after{filter:brightness(0)}:root:not([data-theme]) [aria-busy=true]:not(input,select,textarea).contrast:is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before{filter:brightness(0)}}[data-theme=dark]{--pico-background-color:#13171f;--pico-color:#c2c7d0;--pico-text-selection-color:rgba(0, 180, 120, .1875);--pico-muted-color:#7b8495;--pico-muted-border-color:#202632;--pico-primary:#00b478;--pico-primary-background:#007a50;--pico-primary-border:var(--pico-primary-background);--pico-primary-underline:rgba(0, 180, 120, .5);--pico-primary-hover:#00cc88;--pico-primary-hover-background:#00895a;--pico-primary-hover-border:var(--pico-primary-hover-background);--pico-primary-hover-underline:var(--pico-primary-hover);--pico-primary-focus:rgba(0, 180, 120, .375);--pico-primary-inverse:#fff;--pico-secondary:#969eaf;--pico-secondary-background:#525f7a;--pico-secondary-border:var(--pico-secondary-background);--pico-secondary-underline:rgba(150, 158, 175, .5);--pico-secondary-hover:#b3b9c5;--pico-secondary-hover-background:#5d6b89;--pico-secondary-hover-border:var(--pico-secondary-hover-background);--pico-secondary-hover-underline:var(--pico-secondary-hover);--pico-secondary-focus:rgba(144, 158, 190, .25);--pico-secondary-inverse:#fff;--pico-contrast:#dfe3eb;--pico-contrast-background:#eff1f4;--pico-contrast-border:var(--pico-contrast-background);--pico-contrast-underline:rgba(223, 227, 235, .5);--pico-contrast-hover:#fff;--pico-contrast-hover-background:#fff;--pico-contrast-hover-border:var(--pico-contrast-hover-background);--pico-contrast-hover-underline:var(--pico-contrast-hover);--pico-contrast-focus:rgba(207, 213, 226, .25);--pico-contrast-inverse:#000;--pico-box-shadow:.0145rem .029rem .174rem rgba(7, 9, 12, .01698),.0335rem .067rem .402rem rgba(7, 9, 12, .024),.0625rem .125rem .75rem rgba(7, 9, 12, .03),.1125rem .225rem 1.35rem rgba(7, 9, 12, .036),.2085rem .417rem 2.502rem rgba(7, 9, 12, .04302),.5rem 1rem 6rem rgba(7, 9, 12, .06),0 0 0 .0625rem rgba(7, 9, 12, .015);--pico-h1-color:#f0f1f3;--pico-h2-color:#e0e3e7;--pico-h3-color:#c2c7d0;--pico-h4-color:#b3b9c5;--pico-h5-color:#a4acba;--pico-h6-color:#8891a4;--pico-mark-background-color:#014063;--pico-mark-color:#fff;--pico-ins-color:#62af9a;--pico-del-color:#ce7e7b;--pico-blockquote-border-color:var(--pico-muted-border-color);--pico-blockquote-footer-color:var(--pico-muted-color);--pico-button-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-button-hover-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-table-border-color:var(--pico-muted-border-color);--pico-table-row-stripped-background-color:rgba(111, 120, 135, .0375);--pico-code-background-color:#1a1f28;--pico-code-color:#8891a4;--pico-code-kbd-background-color:var(--pico-color);--pico-code-kbd-color:var(--pico-background-color);--pico-form-element-background-color:#1c212c;--pico-form-element-selected-background-color:#2a3140;--pico-form-element-border-color:#2a3140;--pico-form-element-color:#e0e3e7;--pico-form-element-placeholder-color:#8891a4;--pico-form-element-active-background-color:#1a1f28;--pico-form-element-active-border-color:var(--pico-primary-border);--pico-form-element-focus-color:var(--pico-primary-border);--pico-form-element-disabled-opacity:.5;--pico-form-element-invalid-border-color:#964a50;--pico-form-element-invalid-active-border-color:#b7403b;--pico-form-element-invalid-focus-color:var(--pico-form-element-invalid-active-border-color);--pico-form-element-valid-border-color:#2a7b6f;--pico-form-element-valid-active-border-color:#16896a;--pico-form-element-valid-focus-color:var(--pico-form-element-valid-active-border-color);--pico-switch-background-color:#333c4e;--pico-switch-checked-background-color:var(--pico-primary-background);--pico-switch-color:#fff;--pico-switch-thumb-box-shadow:0 0 0 rgba(0, 0, 0, 0);--pico-range-border-color:#202632;--pico-range-active-border-color:#2a3140;--pico-range-thumb-border-color:var(--pico-background-color);--pico-range-thumb-color:var(--pico-secondary-background);--pico-range-thumb-active-color:var(--pico-primary-background);--pico-accordion-border-color:var(--pico-muted-border-color);--pico-accordion-active-summary-color:var(--pico-primary-hover);--pico-accordion-close-summary-color:var(--pico-color);--pico-accordion-open-summary-color:var(--pico-muted-color);--pico-card-background-color:#181c25;--pico-card-border-color:var(--pico-card-background-color);--pico-card-box-shadow:var(--pico-box-shadow);--pico-card-sectioning-background-color:#1a1f28;--pico-dropdown-background-color:#181c25;--pico-dropdown-border-color:#202632;--pico-dropdown-box-shadow:var(--pico-box-shadow);--pico-dropdown-color:var(--pico-color);--pico-dropdown-hover-background-color:#202632;--pico-loading-spinner-opacity:.5;--pico-modal-overlay-background-color:rgba(8, 9, 10, .75);--pico-progress-background-color:#202632;--pico-progress-color:var(--pico-primary-background);--pico-tooltip-background-color:var(--pico-contrast-background);--pico-tooltip-color:var(--pico-contrast-inverse);--pico-icon-valid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(42, 123, 111)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'%3E%3C/polyline%3E%3C/svg%3E");--pico-icon-invalid:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='rgb(150, 74, 80)' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'%3E%3C/circle%3E%3Cline x1='12' y1='8' x2='12' y2='12'%3E%3C/line%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'%3E%3C/line%3E%3C/svg%3E");color-scheme:dark}[data-theme=dark] input:is([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[type=file]){--pico-form-element-focus-color:var(--pico-primary-focus)}[data-theme=dark] details summary[role=button].contrast:not(.outline):after{filter:brightness(0)}[data-theme=dark] [aria-busy=true]:not(input,select,textarea).contrast:is(button,[type=submit],[type=button],[type=reset],[role=button]):not(.outline):before{filter:brightness(0)}[type=checkbox],[type=radio],[type=range],progress{accent-color:var(--pico-primary)}*,:after,:before{box-sizing:border-box;background-repeat:no-repeat}:after,:before{text-decoration:inherit;vertical-align:inherit}:where(:root){-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;background-color:var(--pico-background-color);color:var(--pico-color);font-weight:var(--pico-font-weight);font-size:var(--pico-font-size);line-height:var(--pico-line-height);font-family:var(--pico-font-family);text-underline-offset:var(--pico-text-underline-offset);text-rendering:optimizeLegibility;overflow-wrap:break-word;-moz-tab-size:4;-o-tab-size:4;tab-size:4}body{width:100%;margin:0}main{display:block}body>footer,body>header,body>main{padding-block:var(--pico-block-spacing-vertical)}section{margin-bottom:var(--pico-block-spacing-vertical)}.container,.container-fluid{width:100%;margin-right:auto;margin-left:auto;padding-right:var(--pico-spacing);padding-left:var(--pico-spacing)}@media (min-width:576px){.container{max-width:510px;padding-right:0;padding-left:0}}@media (min-width:768px){.container{max-width:700px}}@media (min-width:1024px){.container{max-width:950px}}@media (min-width:1280px){.container{max-width:1200px}}@media (min-width:1536px){.container{max-width:1450px}}.grid{grid-column-gap:var(--pico-grid-column-gap);grid-row-gap:var(--pico-grid-row-gap);display:grid;grid-template-columns:1fr}@media (min-width:768px){.grid{grid-template-columns:repeat(auto-fit,minmax(0%,1fr))}}.grid>*{min-width:0}.overflow-auto{overflow:auto}b,strong{font-weight:bolder}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}address,blockquote,dl,ol,p,pre,table,ul{margin-top:0;margin-bottom:var(--pico-typography-spacing-vertical);color:var(--pico-color);font-style:normal;font-weight:var(--pico-font-weight)}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:var(--pico-typography-spacing-vertical);color:var(--pico-color);font-weight:var(--pico-font-weight);font-size:var(--pico-font-size);line-height:var(--pico-line-height);font-family:var(--pico-font-family)}h1{--pico-color:var(--pico-h1-color)}h2{--pico-color:var(--pico-h2-color)}h3{--pico-color:var(--pico-h3-color)}h4{--pico-color:var(--pico-h4-color)}h5{--pico-color:var(--pico-h5-color)}h6{--pico-color:var(--pico-h6-color)}:where(article,address,blockquote,dl,figure,form,ol,p,pre,table,ul)~:is(h1,h2,h3,h4,h5,h6){margin-top:var(--pico-typography-spacing-top)}p{margin-bottom:var(--pico-typography-spacing-vertical)}hgroup{margin-bottom:var(--pico-typography-spacing-vertical)}hgroup>*{margin-top:0;margin-bottom:0}hgroup>:not(:first-child):last-child{--pico-color:var(--pico-muted-color);--pico-font-weight:unset;font-size:1rem}:where(ol,ul) li{margin-bottom:calc(var(--pico-typography-spacing-vertical) * .25)}:where(dl,ol,ul) :where(dl,ol,ul){margin:0;margin-top:calc(var(--pico-typography-spacing-vertical) * .25)}ul li{list-style:square}mark{padding:.125rem .25rem;background-color:var(--pico-mark-background-color);color:var(--pico-mark-color);vertical-align:baseline}blockquote{display:block;margin:var(--pico-typography-spacing-vertical) 0;padding:var(--pico-spacing);border-right:none;border-left:.25rem solid var(--pico-blockquote-border-color);border-inline-start:.25rem solid var(--pico-blockquote-border-color);border-inline-end:none}blockquote footer{margin-top:calc(var(--pico-typography-spacing-vertical) * .5);color:var(--pico-blockquote-footer-color)}abbr[title]{border-bottom:1px dotted;text-decoration:none;cursor:help}ins{color:var(--pico-ins-color);text-decoration:none}del{color:var(--pico-del-color)}::-moz-selection{background-color:var(--pico-text-selection-color)}::selection{background-color:var(--pico-text-selection-color)}:where(a:not([role=button])),[role=link]{--pico-color:var(--pico-primary);--pico-background-color:transparent;--pico-underline:var(--pico-primary-underline);outline:0;background-color:var(--pico-background-color);color:var(--pico-color);-webkit-text-decoration:var(--pico-text-decoration);text-decoration:var(--pico-text-decoration);text-decoration-color:var(--pico-underline);text-underline-offset:.125em;transition:background-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),color var(--pico-transition),text-decoration var(--pico-transition),box-shadow var(--pico-transition),-webkit-text-decoration var(--pico-transition)}:where(a:not([role=button])):is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-primary-hover);--pico-underline:var(--pico-primary-hover-underline);--pico-text-decoration:underline}:where(a:not([role=button])):focus-visible,[role=link]:focus-visible{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}:where(a:not([role=button])).secondary,[role=link].secondary{--pico-color:var(--pico-secondary);--pico-underline:var(--pico-secondary-underline)}:where(a:not([role=button])).secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link].secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-secondary-hover);--pico-underline:var(--pico-secondary-hover-underline)}:where(a:not([role=button])).contrast,[role=link].contrast{--pico-color:var(--pico-contrast);--pico-underline:var(--pico-contrast-underline)}:where(a:not([role=button])).contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[role=link].contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-contrast-hover);--pico-underline:var(--pico-contrast-hover-underline)}a[role=button]{display:inline-block}button{margin:0;overflow:visible;font-family:inherit;text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[role=button],[type=button],[type=file]::file-selector-button,[type=reset],[type=submit],button{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);--pico-color:var(--pico-primary-inverse);--pico-box-shadow:var(--pico-button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);outline:0;background-color:var(--pico-background-color);box-shadow:var(--pico-box-shadow);color:var(--pico-color);font-weight:var(--pico-font-weight);font-size:1rem;line-height:var(--pico-line-height);text-align:center;text-decoration:none;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition)}[role=button]:is(:hover,:active,:focus),[role=button]:is([aria-current]:not([aria-current=false])),[type=button]:is(:hover,:active,:focus),[type=button]:is([aria-current]:not([aria-current=false])),[type=file]::file-selector-button:is(:hover,:active,:focus),[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])),[type=reset]:is(:hover,:active,:focus),[type=reset]:is([aria-current]:not([aria-current=false])),[type=submit]:is(:hover,:active,:focus),[type=submit]:is([aria-current]:not([aria-current=false])),button:is(:hover,:active,:focus),button:is([aria-current]:not([aria-current=false])){--pico-background-color:var(--pico-primary-hover-background);--pico-border-color:var(--pico-primary-hover-border);--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));--pico-color:var(--pico-primary-inverse)}[role=button]:focus,[role=button]:is([aria-current]:not([aria-current=false])):focus,[type=button]:focus,[type=button]:is([aria-current]:not([aria-current=false])):focus,[type=file]::file-selector-button:focus,[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus,[type=reset]:focus,[type=reset]:is([aria-current]:not([aria-current=false])):focus,[type=submit]:focus,[type=submit]:is([aria-current]:not([aria-current=false])):focus,button:focus,button:is([aria-current]:not([aria-current=false])):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}[type=button],[type=reset],[type=submit]{margin-bottom:var(--pico-spacing)}:is(button,[type=submit],[type=button],[role=button]).secondary,[type=file]::file-selector-button,[type=reset]{--pico-background-color:var(--pico-secondary-background);--pico-border-color:var(--pico-secondary-border);--pico-color:var(--pico-secondary-inverse);cursor:pointer}:is(button,[type=submit],[type=button],[role=button]).secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=file]::file-selector-button:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border);--pico-color:var(--pico-secondary-inverse)}:is(button,[type=submit],[type=button],[role=button]).secondary:focus,:is(button,[type=submit],[type=button],[role=button]).secondary:is([aria-current]:not([aria-current=false])):focus,[type=file]::file-selector-button:focus,[type=file]::file-selector-button:is([aria-current]:not([aria-current=false])):focus,[type=reset]:focus,[type=reset]:is([aria-current]:not([aria-current=false])):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}:is(button,[type=submit],[type=button],[role=button]).contrast{--pico-background-color:var(--pico-contrast-background);--pico-border-color:var(--pico-contrast-border);--pico-color:var(--pico-contrast-inverse)}:is(button,[type=submit],[type=button],[role=button]).contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:var(--pico-contrast-hover-background);--pico-border-color:var(--pico-contrast-hover-border);--pico-color:var(--pico-contrast-inverse)}:is(button,[type=submit],[type=button],[role=button]).contrast:focus,:is(button,[type=submit],[type=button],[role=button]).contrast:is([aria-current]:not([aria-current=false])):focus{--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),0 0 0 var(--pico-outline-width) var(--pico-contrast-focus)}:is(button,[type=submit],[type=button],[role=button]).outline,[type=reset].outline{--pico-background-color:transparent;--pico-color:var(--pico-primary);--pico-border-color:var(--pico-primary)}:is(button,[type=submit],[type=button],[role=button]).outline:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset].outline:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-background-color:transparent;--pico-color:var(--pico-primary-hover);--pico-border-color:var(--pico-primary-hover)}:is(button,[type=submit],[type=button],[role=button]).outline.secondary,[type=reset].outline{--pico-color:var(--pico-secondary);--pico-border-color:var(--pico-secondary)}:is(button,[type=submit],[type=button],[role=button]).outline.secondary:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),[type=reset].outline:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-secondary-hover);--pico-border-color:var(--pico-secondary-hover)}:is(button,[type=submit],[type=button],[role=button]).outline.contrast{--pico-color:var(--pico-contrast);--pico-border-color:var(--pico-contrast)}:is(button,[type=submit],[type=button],[role=button]).outline.contrast:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){--pico-color:var(--pico-contrast-hover);--pico-border-color:var(--pico-contrast-hover)}:where(button,[type=submit],[type=reset],[type=button],[role=button])[disabled],:where(fieldset[disabled]) :is(button,[type=submit],[type=button],[type=reset],[role=button]){opacity:.5;pointer-events:none}:where(table){width:100%;border-collapse:collapse;border-spacing:0;text-indent:0}td,th{padding:calc(var(--pico-spacing)/ 2) var(--pico-spacing);border-bottom:var(--pico-border-width) solid var(--pico-table-border-color);background-color:var(--pico-background-color);color:var(--pico-color);font-weight:var(--pico-font-weight);text-align:left;text-align:start}tfoot td,tfoot th{border-top:var(--pico-border-width) solid var(--pico-table-border-color);border-bottom:0}table.striped tbody tr:nth-child(odd) td,table.striped tbody tr:nth-child(odd) th{background-color:var(--pico-table-row-stripped-background-color)}:where(audio,canvas,iframe,img,svg,video){vertical-align:middle}audio,video{display:inline-block}audio:not([controls]){display:none;height:0}:where(iframe){border-style:none}img{max-width:100%;height:auto;border-style:none}:where(svg:not([fill])){fill:currentColor}svg:not(:root){overflow:hidden}code,kbd,pre,samp{font-size:.875em;font-family:var(--pico-font-family)}pre code{font-size:inherit;font-family:inherit}pre{-ms-overflow-style:scrollbar;overflow:auto}code,kbd,pre{border-radius:var(--pico-border-radius);background:var(--pico-code-background-color);color:var(--pico-code-color);font-weight:var(--pico-font-weight);line-height:initial}code,kbd{display:inline-block;padding:.375rem}pre{display:block;margin-bottom:var(--pico-spacing);overflow-x:auto}pre>code{display:block;padding:var(--pico-spacing);background:0 0;line-height:var(--pico-line-height)}kbd{background-color:var(--pico-code-kbd-background-color);color:var(--pico-code-kbd-color);vertical-align:baseline}figure{display:block;margin:0;padding:0}figure figcaption{padding:calc(var(--pico-spacing) * .5) 0;color:var(--pico-muted-color)}hr{height:0;margin:var(--pico-typography-spacing-vertical) 0;border:0;border-top:1px solid var(--pico-muted-border-color);color:inherit}[hidden],template{display:none!important}canvas{display:inline-block}input,optgroup,select,textarea{margin:0;font-size:1rem;line-height:var(--pico-line-height);font-family:inherit;letter-spacing:inherit}input{overflow:visible}select{text-transform:none}legend{max-width:100%;padding:0;color:inherit;white-space:normal}textarea{overflow:auto}[type=checkbox],[type=radio]{padding:0}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}::-moz-focus-inner{padding:0;border-style:none}:-moz-focusring{outline:0}:-moz-ui-invalid{box-shadow:none}::-ms-expand{display:none}[type=file],[type=range]{padding:0;border-width:0}input:not([type=checkbox],[type=radio],[type=range]){height:calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2)}fieldset{width:100%;margin:0;margin-bottom:var(--pico-spacing);padding:0;border:0}fieldset legend,label{display:block;margin-bottom:calc(var(--pico-spacing) * .375);color:var(--pico-color);font-weight:var(--pico-form-label-font-weight,var(--pico-font-weight))}fieldset legend{margin-bottom:calc(var(--pico-spacing) * .5)}button[type=submit],input:not([type=checkbox],[type=radio]),select,textarea{width:100%}input:not([type=checkbox],[type=radio],[type=range],[type=file]),select,textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal)}input,select,textarea{--pico-background-color:var(--pico-form-element-background-color);--pico-border-color:var(--pico-form-element-border-color);--pico-color:var(--pico-form-element-color);--pico-box-shadow:none;border:var(--pico-border-width) solid var(--pico-border-color);border-radius:var(--pico-border-radius);outline:0;background-color:var(--pico-background-color);box-shadow:var(--pico-box-shadow);color:var(--pico-color);font-weight:var(--pico-font-weight);transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition)}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[type=checkbox],[type=radio],[readonly]):is(:active,:focus){--pico-background-color:var(--pico-form-element-active-background-color)}:where(select,textarea):not([readonly]):is(:active,:focus),input:not([type=submit],[type=button],[type=reset],[role=switch],[readonly]):is(:active,:focus){--pico-border-color:var(--pico-form-element-active-border-color)}:where(select,textarea):not([readonly]):focus,input:not([type=submit],[type=button],[type=reset],[type=range],[type=file],[readonly]):focus{--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color)}:where(fieldset[disabled]) :is(input:not([type=submit],[type=button],[type=reset]),select,textarea),input:not([type=submit],[type=button],[type=reset])[disabled],label[aria-disabled=true],select[disabled],textarea[disabled]{opacity:var(--pico-form-element-disabled-opacity);pointer-events:none}label[aria-disabled=true] input[disabled]{opacity:1}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid]{padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;padding-left:var(--pico-form-element-spacing-horizontal);padding-inline-start:var(--pico-form-element-spacing-horizontal)!important;padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem)!important;background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=false]:not(select){background-image:var(--pico-icon-valid)}:where(input,select,textarea):not([type=checkbox],[type=radio],[type=date],[type=datetime-local],[type=month],[type=time],[type=week],[type=range])[aria-invalid=true]:not(select){background-image:var(--pico-icon-invalid)}:where(input,select,textarea)[aria-invalid=false]{--pico-border-color:var(--pico-form-element-valid-border-color)}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus){--pico-border-color:var(--pico-form-element-valid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=false]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-valid-focus-color)!important}:where(input,select,textarea)[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus){--pico-border-color:var(--pico-form-element-invalid-active-border-color)!important}:where(input,select,textarea)[aria-invalid=true]:is(:active,:focus):not([type=checkbox],[type=radio]){--pico-box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-invalid-focus-color)!important}[dir=rtl] :where(input,select,textarea):not([type=checkbox],[type=radio]):is([aria-invalid],[aria-invalid=true],[aria-invalid=false]){background-position:center left .75rem}input::-webkit-input-placeholder,input::placeholder,select:invalid,textarea::-webkit-input-placeholder,textarea::placeholder{color:var(--pico-form-element-placeholder-color);opacity:1}input:not([type=checkbox],[type=radio]),select,textarea{margin-bottom:var(--pico-spacing)}select::-ms-expand{border:0;background-color:transparent}select:not([multiple],[size]){padding-right:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);padding-left:var(--pico-form-element-spacing-horizontal);padding-inline-start:var(--pico-form-element-spacing-horizontal);padding-inline-end:calc(var(--pico-form-element-spacing-horizontal) + 1.5rem);background-image:var(--pico-icon-chevron);background-position:center right .75rem;background-size:1rem auto;background-repeat:no-repeat}select[multiple] option:checked{background:var(--pico-form-element-selected-background-color)}[dir=rtl] select:not([multiple],[size]){background-position:center left .75rem}textarea{display:block;resize:vertical}textarea[aria-invalid]{--pico-icon-height:calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);background-position:top right .75rem!important;background-size:1rem var(--pico-icon-height)!important}:where(input,select,textarea,fieldset,.grid)+small{display:block;width:100%;margin-top:calc(var(--pico-spacing) * -.75);margin-bottom:var(--pico-spacing);color:var(--pico-muted-color)}:where(input,select,textarea,fieldset,.grid)[aria-invalid=false]+small{color:var(--pico-ins-color)}:where(input,select,textarea,fieldset,.grid)[aria-invalid=true]+small{color:var(--pico-del-color)}label>:where(input,select,textarea){margin-top:calc(var(--pico-spacing) * .25)}label:has([type=checkbox],[type=radio]){width:-moz-fit-content;width:fit-content;cursor:pointer}[type=checkbox],[type=radio]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:1.25em;height:1.25em;margin-top:-.125em;margin-inline-end:.5em;border-width:var(--pico-border-width);vertical-align:middle;cursor:pointer}[type=checkbox]::-ms-check,[type=radio]::-ms-check{display:none}[type=checkbox]:checked,[type=checkbox]:checked:active,[type=checkbox]:checked:focus,[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-checkbox);background-position:center;background-size:.75em auto;background-repeat:no-repeat}[type=checkbox]~label,[type=radio]~label{display:inline-block;margin-bottom:0;cursor:pointer}[type=checkbox]~label:not(:last-of-type),[type=radio]~label:not(:last-of-type){margin-inline-end:1em}[type=checkbox]:indeterminate{--pico-background-color:var(--pico-primary-background);--pico-border-color:var(--pico-primary-border);background-image:var(--pico-icon-minus);background-position:center;background-size:.75em auto;background-repeat:no-repeat}[type=radio]{border-radius:50%}[type=radio]:checked,[type=radio]:checked:active,[type=radio]:checked:focus{--pico-background-color:var(--pico-primary-inverse);border-width:.35em;background-image:none}[type=checkbox][role=switch]{--pico-background-color:var(--pico-switch-background-color);--pico-color:var(--pico-switch-color);width:2.25em;height:1.25em;border:var(--pico-border-width) solid var(--pico-border-color);border-radius:1.25em;background-color:var(--pico-background-color);line-height:1.25em}[type=checkbox][role=switch]:not([aria-invalid]){--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:before{display:block;width:calc(1.25em - var(--pico-border-width) * 2);height:100%;border-radius:50%;background-color:var(--pico-color);box-shadow:var(--pico-switch-thumb-box-shadow);content:"";transition:margin .1s ease-in-out}[type=checkbox][role=switch]:focus{--pico-background-color:var(--pico-switch-background-color);--pico-border-color:var(--pico-switch-background-color)}[type=checkbox][role=switch]:checked{--pico-background-color:var(--pico-switch-checked-background-color);--pico-border-color:var(--pico-switch-checked-background-color);background-image:none}[type=checkbox][role=switch]:checked:before{margin-inline-start:calc(1.125em - var(--pico-border-width))}[type=checkbox][role=switch][disabled]{--pico-background-color:var(--pico-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus{--pico-background-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true]{--pico-background-color:var(--pico-form-element-invalid-border-color)}[type=checkbox][aria-invalid=false]:checked,[type=checkbox][aria-invalid=false]:checked:active,[type=checkbox][aria-invalid=false]:checked:focus,[type=checkbox][role=switch][aria-invalid=false]:checked,[type=checkbox][role=switch][aria-invalid=false]:checked:active,[type=checkbox][role=switch][aria-invalid=false]:checked:focus,[type=radio][aria-invalid=false]:checked,[type=radio][aria-invalid=false]:checked:active,[type=radio][aria-invalid=false]:checked:focus{--pico-border-color:var(--pico-form-element-valid-border-color)}[type=checkbox]:checked:active[aria-invalid=true],[type=checkbox]:checked:focus[aria-invalid=true],[type=checkbox]:checked[aria-invalid=true],[type=checkbox][role=switch]:checked:active[aria-invalid=true],[type=checkbox][role=switch]:checked:focus[aria-invalid=true],[type=checkbox][role=switch]:checked[aria-invalid=true],[type=radio]:checked:active[aria-invalid=true],[type=radio]:checked:focus[aria-invalid=true],[type=radio]:checked[aria-invalid=true]{--pico-border-color:var(--pico-form-element-invalid-border-color)}[type=color]::-webkit-color-swatch-wrapper{padding:0}[type=color]::-moz-focus-inner{padding:0}[type=color]::-webkit-color-swatch{border:0;border-radius:calc(var(--pico-border-radius) * .5)}[type=color]::-moz-color-swatch{border:0;border-radius:calc(var(--pico-border-radius) * .5)}input:not([type=checkbox],[type=radio],[type=range],[type=file]):is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){--pico-icon-position:.75rem;--pico-icon-width:1rem;padding-right:calc(var(--pico-icon-width) + var(--pico-icon-position));background-image:var(--pico-icon-date);background-position:center right var(--pico-icon-position);background-size:var(--pico-icon-width) auto;background-repeat:no-repeat}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=time]{background-image:var(--pico-icon-time)}[type=date]::-webkit-calendar-picker-indicator,[type=datetime-local]::-webkit-calendar-picker-indicator,[type=month]::-webkit-calendar-picker-indicator,[type=time]::-webkit-calendar-picker-indicator,[type=week]::-webkit-calendar-picker-indicator{width:var(--pico-icon-width);margin-right:calc(var(--pico-icon-width) * -1);margin-left:var(--pico-icon-position);opacity:0}@-moz-document url-prefix(){[type=date],[type=datetime-local],[type=month],[type=time],[type=week]{padding-right:var(--pico-form-element-spacing-horizontal)!important;background-image:none!important}}[dir=rtl] :is([type=date],[type=datetime-local],[type=month],[type=time],[type=week]){text-align:right}[type=file]{--pico-color:var(--pico-muted-color);margin-left:calc(var(--pico-outline-width) * -1);padding:calc(var(--pico-form-element-spacing-vertical) * .5) 0;padding-left:var(--pico-outline-width);border:0;border-radius:0;background:0 0}[type=file]::file-selector-button{margin-right:calc(var(--pico-spacing)/ 2);padding:calc(var(--pico-form-element-spacing-vertical) * .5) var(--pico-form-element-spacing-horizontal)}[type=file]:is(:hover,:active,:focus)::file-selector-button{--pico-background-color:var(--pico-secondary-hover-background);--pico-border-color:var(--pico-secondary-hover-border)}[type=file]:focus::file-selector-button{--pico-box-shadow:var(--pico-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),0 0 0 var(--pico-outline-width) var(--pico-secondary-focus)}[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:1.25rem;background:0 0}[type=range]::-webkit-slider-runnable-track{width:100%;height:.375rem;border-radius:var(--pico-border-radius);background-color:var(--pico-range-border-color);-webkit-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition)}[type=range]::-moz-range-track{width:100%;height:.375rem;border-radius:var(--pico-border-radius);background-color:var(--pico-range-border-color);-moz-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition)}[type=range]::-ms-track{width:100%;height:.375rem;border-radius:var(--pico-border-radius);background-color:var(--pico-range-border-color);-ms-transition:background-color var(--pico-transition),box-shadow var(--pico-transition);transition:background-color var(--pico-transition),box-shadow var(--pico-transition)}[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:1.25rem;height:1.25rem;margin-top:-.4375rem;border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;background-color:var(--pico-range-thumb-color);cursor:pointer;-webkit-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition)}[type=range]::-moz-range-thumb{-webkit-appearance:none;width:1.25rem;height:1.25rem;margin-top:-.4375rem;border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;background-color:var(--pico-range-thumb-color);cursor:pointer;-moz-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition)}[type=range]::-ms-thumb{-webkit-appearance:none;width:1.25rem;height:1.25rem;margin-top:-.4375rem;border:2px solid var(--pico-range-thumb-border-color);border-radius:50%;background-color:var(--pico-range-thumb-color);cursor:pointer;-ms-transition:background-color var(--pico-transition),transform var(--pico-transition);transition:background-color var(--pico-transition),transform var(--pico-transition)}[type=range]:active,[type=range]:focus-within{--pico-range-border-color:var(--pico-range-active-border-color);--pico-range-thumb-color:var(--pico-range-thumb-active-color)}[type=range]:active::-webkit-slider-thumb{transform:scale(1.25)}[type=range]:active::-moz-range-thumb{transform:scale(1.25)}[type=range]:active::-ms-thumb{transform:scale(1.25)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem);background-image:var(--pico-icon-search);background-position:center left calc(var(--pico-form-element-spacing-horizontal) + .125rem);background-size:1rem auto;background-repeat:no-repeat}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{padding-inline-start:calc(var(--pico-form-element-spacing-horizontal) + 1.75rem)!important;background-position:center left 1.125rem,center right .75rem}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=false]{background-image:var(--pico-icon-search),var(--pico-icon-valid)}input:not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid=true]{background-image:var(--pico-icon-search),var(--pico-icon-invalid)}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search]{background-position:center right 1.125rem}[dir=rtl] :where(input):not([type=checkbox],[type=radio],[type=range],[type=file])[type=search][aria-invalid]{background-position:center right 1.125rem,center left .75rem}details{display:block;margin-bottom:var(--pico-spacing)}details summary{line-height:1rem;list-style-type:none;cursor:pointer;transition:color var(--pico-transition)}details summary:not([role]){color:var(--pico-accordion-close-summary-color)}details summary::-webkit-details-marker{display:none}details summary::marker{display:none}details summary::-moz-list-bullet{list-style-type:none}details summary:after{display:block;width:1rem;height:1rem;margin-inline-start:calc(var(--pico-spacing,1rem) * .5);float:right;transform:rotate(-90deg);background-image:var(--pico-icon-chevron);background-position:right center;background-size:1rem auto;background-repeat:no-repeat;content:"";transition:transform var(--pico-transition)}details summary:focus{outline:0}details summary:focus:not([role]){color:var(--pico-accordion-active-summary-color)}details summary:focus-visible:not([role]){outline:var(--pico-outline-width) solid var(--pico-primary-focus);outline-offset:calc(var(--pico-spacing,1rem) * .5);color:var(--pico-primary)}details summary[role=button]{width:100%;text-align:left}details summary[role=button]:after{height:calc(1rem * var(--pico-line-height,1.5))}details[open]>summary{margin-bottom:var(--pico-spacing)}details[open]>summary:not([role]):not(:focus){color:var(--pico-accordion-open-summary-color)}details[open]>summary:after{transform:rotate(0)}[dir=rtl] details summary{text-align:right}[dir=rtl] details summary:after{float:left;background-position:left center}article{margin-bottom:var(--pico-block-spacing-vertical);padding:var(--pico-block-spacing-vertical) var(--pico-block-spacing-horizontal);border-radius:var(--pico-border-radius);background:var(--pico-card-background-color);box-shadow:var(--pico-card-box-shadow)}article>footer,article>header{margin-right:calc(var(--pico-block-spacing-horizontal) * -1);margin-left:calc(var(--pico-block-spacing-horizontal) * -1);padding:calc(var(--pico-block-spacing-vertical) * .66) var(--pico-block-spacing-horizontal);background-color:var(--pico-card-sectioning-background-color)}article>header{margin-top:calc(var(--pico-block-spacing-vertical) * -1);margin-bottom:var(--pico-block-spacing-vertical);border-bottom:var(--pico-border-width) solid var(--pico-card-border-color);border-top-right-radius:var(--pico-border-radius);border-top-left-radius:var(--pico-border-radius)}article>footer{margin-top:var(--pico-block-spacing-vertical);margin-bottom:calc(var(--pico-block-spacing-vertical) * -1);border-top:var(--pico-border-width) solid var(--pico-card-border-color);border-bottom-right-radius:var(--pico-border-radius);border-bottom-left-radius:var(--pico-border-radius)}details.dropdown{position:relative;border-bottom:none}details.dropdown summary:after,details.dropdown>a:after,details.dropdown>button:after{display:block;width:1rem;height:calc(1rem * var(--pico-line-height,1.5));margin-inline-start:.25rem;float:right;transform:rotate(0) translate(.2rem);background-image:var(--pico-icon-chevron);background-position:right center;background-size:1rem auto;background-repeat:no-repeat;content:""}nav details.dropdown{margin-bottom:0}details.dropdown summary:not([role]){height:calc(1rem * var(--pico-line-height) + var(--pico-form-element-spacing-vertical) * 2 + var(--pico-border-width) * 2);padding:var(--pico-form-element-spacing-vertical) var(--pico-form-element-spacing-horizontal);border:var(--pico-border-width) solid var(--pico-form-element-border-color);border-radius:var(--pico-border-radius);background-color:var(--pico-form-element-background-color);color:var(--pico-form-element-placeholder-color);line-height:inherit;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color var(--pico-transition),border-color var(--pico-transition),color var(--pico-transition),box-shadow var(--pico-transition)}details.dropdown summary:not([role]):active,details.dropdown summary:not([role]):focus{border-color:var(--pico-form-element-active-border-color);background-color:var(--pico-form-element-active-background-color)}details.dropdown summary:not([role]):focus{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-form-element-focus-color)}details.dropdown summary:not([role]):focus-visible{outline:0}details.dropdown summary:not([role])[aria-invalid=false]{--pico-form-element-border-color:var(--pico-form-element-valid-border-color);--pico-form-element-active-border-color:var(--pico-form-element-valid-focus-color);--pico-form-element-focus-color:var(--pico-form-element-valid-focus-color)}details.dropdown summary:not([role])[aria-invalid=true]{--pico-form-element-border-color:var(--pico-form-element-invalid-border-color);--pico-form-element-active-border-color:var(--pico-form-element-invalid-focus-color);--pico-form-element-focus-color:var(--pico-form-element-invalid-focus-color)}nav details.dropdown{display:inline;margin:calc(var(--pico-nav-element-spacing-vertical) * -1) 0}nav details.dropdown summary:after{transform:rotate(0) translate(0)}nav details.dropdown summary:not([role]){height:calc(1rem * var(--pico-line-height) + var(--pico-nav-link-spacing-vertical) * 2);padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal)}nav details.dropdown summary:not([role]):focus-visible{box-shadow:0 0 0 var(--pico-outline-width) var(--pico-primary-focus)}details.dropdown summary+ul{display:flex;z-index:99;position:absolute;left:0;flex-direction:column;width:100%;min-width:-moz-fit-content;min-width:fit-content;margin:0;margin-top:var(--pico-outline-width);padding:0;border:var(--pico-border-width) solid var(--pico-dropdown-border-color);border-radius:var(--pico-border-radius);background-color:var(--pico-dropdown-background-color);box-shadow:var(--pico-dropdown-box-shadow);color:var(--pico-dropdown-color);white-space:nowrap;opacity:0;transition:opacity var(--pico-transition),transform 0s ease-in-out 1s}details.dropdown summary+ul[dir=rtl]{right:0;left:auto}details.dropdown summary+ul li{width:100%;margin-bottom:0;padding:calc(var(--pico-form-element-spacing-vertical) * .5) var(--pico-form-element-spacing-horizontal);list-style:none}details.dropdown summary+ul li:first-of-type{margin-top:calc(var(--pico-form-element-spacing-vertical) * .5)}details.dropdown summary+ul li:last-of-type{margin-bottom:calc(var(--pico-form-element-spacing-vertical) * .5)}details.dropdown summary+ul li a{display:block;margin:calc(var(--pico-form-element-spacing-vertical) * -.5) calc(var(--pico-form-element-spacing-horizontal) * -1);padding:calc(var(--pico-form-element-spacing-vertical) * .5) var(--pico-form-element-spacing-horizontal);overflow:hidden;border-radius:0;color:var(--pico-dropdown-color);text-decoration:none;text-overflow:ellipsis}details.dropdown summary+ul li a:active,details.dropdown summary+ul li a:focus,details.dropdown summary+ul li a:focus-visible,details.dropdown summary+ul li a:hover,details.dropdown summary+ul li a[aria-current]:not([aria-current=false]){background-color:var(--pico-dropdown-hover-background-color)}details.dropdown summary+ul li label{width:100%}details.dropdown summary+ul li:has(label):hover{background-color:var(--pico-dropdown-hover-background-color)}details.dropdown[open] summary{margin-bottom:0}details.dropdown[open] summary+ul{transform:scaleY(1);opacity:1;transition:opacity var(--pico-transition),transform 0s ease-in-out 0s}details.dropdown[open] summary:before{display:block;z-index:1;position:fixed;width:100vw;height:100vh;top:0;right:0;bottom:0;left:0;background:0 0;content:"";cursor:default}label>details.dropdown{margin-top:calc(var(--pico-spacing) * .25)}[role=group],[role=search]{display:inline-flex;position:relative;width:100%;margin-bottom:var(--pico-spacing);border-radius:var(--pico-border-radius);box-shadow:var(--pico-group-box-shadow,0 0 0 transparent);vertical-align:middle;transition:box-shadow var(--pico-transition)}[role=group] input:not([type=checkbox],[type=radio]),[role=group] select,[role=group]>*,[role=search] input:not([type=checkbox],[type=radio]),[role=search] select,[role=search]>*{position:relative;flex:1 1 auto;margin-bottom:0}[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=group]>:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child),[role=search]>:not(:first-child){margin-left:0;border-top-left-radius:0;border-bottom-left-radius:0}[role=group] input:not([type=checkbox],[type=radio]):not(:last-child),[role=group] select:not(:last-child),[role=group]>:not(:last-child),[role=search] input:not([type=checkbox],[type=radio]):not(:last-child),[role=search] select:not(:last-child),[role=search]>:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}[role=group] input:not([type=checkbox],[type=radio]):focus,[role=group] select:focus,[role=group]>:focus,[role=search] input:not([type=checkbox],[type=radio]):focus,[role=search] select:focus,[role=search]>:focus{z-index:2}[role=group] [role=button]:not(:first-child),[role=group] [type=button]:not(:first-child),[role=group] [type=reset]:not(:first-child),[role=group] [type=submit]:not(:first-child),[role=group] button:not(:first-child),[role=group] input:not([type=checkbox],[type=radio]):not(:first-child),[role=group] select:not(:first-child),[role=search] [role=button]:not(:first-child),[role=search] [type=button]:not(:first-child),[role=search] [type=reset]:not(:first-child),[role=search] [type=submit]:not(:first-child),[role=search] button:not(:first-child),[role=search] input:not([type=checkbox],[type=radio]):not(:first-child),[role=search] select:not(:first-child){margin-left:calc(var(--pico-border-width) * -1)}[role=group] [role=button],[role=group] [type=button],[role=group] [type=reset],[role=group] [type=submit],[role=group] button,[role=search] [role=button],[role=search] [type=button],[role=search] [type=reset],[role=search] [type=submit],[role=search] button{width:auto}@supports selector(:has(*)){[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-button)}[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=group]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select,[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) input:not([type=checkbox],[type=radio]),[role=search]:has(button:focus,[type=submit]:focus,[type=button]:focus,[role=button]:focus) select{border-color:transparent}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus),[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus){--pico-group-box-shadow:var(--pico-group-box-shadow-focus-with-input)}[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=group]:has(input:not([type=submit],[type=button]):focus,select:focus) button,[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [role=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=button],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) [type=submit],[role=search]:has(input:not([type=submit],[type=button]):focus,select:focus) button{--pico-button-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-border);--pico-button-hover-box-shadow:0 0 0 var(--pico-border-width) var(--pico-primary-hover-border)}[role=group] [role=button]:focus,[role=group] [type=button]:focus,[role=group] [type=reset]:focus,[role=group] [type=submit]:focus,[role=group] button:focus,[role=search] [role=button]:focus,[role=search] [type=button]:focus,[role=search] [type=reset]:focus,[role=search] [type=submit]:focus,[role=search] button:focus{box-shadow:none}}[role=search]>:first-child{border-top-left-radius:5rem;border-bottom-left-radius:5rem}[role=search]>:last-child{border-top-right-radius:5rem;border-bottom-right-radius:5rem}[aria-busy=true]:not(input,select,textarea,html){white-space:nowrap}[aria-busy=true]:not(input,select,textarea,html):before{display:inline-block;width:1em;height:1em;background-image:var(--pico-icon-loading);background-size:1rem auto;background-repeat:no-repeat;content:"";vertical-align:-.125em}[aria-busy=true]:not(input,select,textarea,html):not(:empty):before{margin-inline-end:calc(var(--pico-spacing) * .5)}[aria-busy=true]:not(input,select,textarea,html):empty{text-align:center}[role=button][aria-busy=true],[type=button][aria-busy=true],[type=reset][aria-busy=true],[type=submit][aria-busy=true],a[aria-busy=true],button[aria-busy=true]{pointer-events:none}:root{--pico-scrollbar-width:0px}dialog{display:flex;z-index:999;position:fixed;top:0;right:0;bottom:0;left:0;align-items:center;justify-content:center;width:inherit;min-width:100%;height:inherit;min-height:100%;padding:0;border:0;-webkit-backdrop-filter:var(--pico-modal-overlay-backdrop-filter);backdrop-filter:var(--pico-modal-overlay-backdrop-filter);background-color:var(--pico-modal-overlay-background-color);color:var(--pico-color)}dialog article{width:100%;max-height:calc(100vh - var(--pico-spacing) * 2);margin:var(--pico-spacing);overflow:auto}@media (min-width:576px){dialog article{max-width:510px}}@media (min-width:768px){dialog article{max-width:700px}}dialog article>header>*{margin-bottom:0}dialog article>header .close,dialog article>header :is(a,button)[rel=prev]{margin:0;margin-left:var(--pico-spacing);padding:0;float:right}dialog article>footer{text-align:right}dialog article>footer [role=button],dialog article>footer button{margin-bottom:0}dialog article>footer [role=button]:not(:first-of-type),dialog article>footer button:not(:first-of-type){margin-left:calc(var(--pico-spacing) * .5)}dialog article .close,dialog article :is(a,button)[rel=prev]{display:block;width:1rem;height:1rem;margin-top:calc(var(--pico-spacing) * -1);margin-bottom:var(--pico-spacing);margin-left:auto;border:none;background-image:var(--pico-icon-close);background-position:center;background-size:auto 1rem;background-repeat:no-repeat;background-color:transparent;opacity:.5;transition:opacity var(--pico-transition)}dialog article .close:is([aria-current]:not([aria-current=false]),:hover,:active,:focus),dialog article :is(a,button)[rel=prev]:is([aria-current]:not([aria-current=false]),:hover,:active,:focus){opacity:1}dialog:not([open]),dialog[open=false]{display:none}.modal-is-open{padding-right:var(--pico-scrollbar-width,0);overflow:hidden;pointer-events:none;touch-action:none}.modal-is-open dialog{pointer-events:auto;touch-action:auto}:where(.modal-is-opening,.modal-is-closing) dialog,:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-duration:.2s;animation-timing-function:ease-in-out;animation-fill-mode:both}:where(.modal-is-opening,.modal-is-closing) dialog{animation-duration:.8s;animation-name:modal-overlay}:where(.modal-is-opening,.modal-is-closing) dialog>article{animation-delay:.2s;animation-name:modal}.modal-is-closing dialog,.modal-is-closing dialog>article{animation-delay:0s;animation-direction:reverse}@keyframes modal-overlay{0%{-webkit-backdrop-filter:none;backdrop-filter:none;background-color:transparent}}@keyframes modal{0%{transform:translateY(-100%);opacity:0}}:where(nav li):before{float:left;content:"​"}nav,nav ul{display:flex}nav{justify-content:space-between;overflow:visible}nav ol,nav ul{align-items:center;margin-bottom:0;padding:0;list-style:none}nav ol:first-of-type,nav ul:first-of-type{margin-left:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav ol:last-of-type,nav ul:last-of-type{margin-right:calc(var(--pico-nav-element-spacing-horizontal) * -1)}nav li{display:inline-block;margin:0;padding:var(--pico-nav-element-spacing-vertical) var(--pico-nav-element-spacing-horizontal)}nav li :where(a,[role=link]){display:inline-block;margin:calc(var(--pico-nav-link-spacing-vertical) * -1) calc(var(--pico-nav-link-spacing-horizontal) * -1);padding:var(--pico-nav-link-spacing-vertical) var(--pico-nav-link-spacing-horizontal);border-radius:var(--pico-border-radius)}nav li :where(a,[role=link]):not(:hover){text-decoration:none}nav li [role=button],nav li button,nav li input:not([type=checkbox],[type=radio],[type=range],[type=file]),nav li select{height:auto;margin-right:inherit;margin-bottom:0;margin-left:inherit;padding:calc(var(--pico-nav-link-spacing-vertical) - var(--pico-border-width) * 2) var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb]{align-items:center;justify-content:start}nav[aria-label=breadcrumb] ul li:not(:first-child){margin-inline-start:var(--pico-nav-link-spacing-horizontal)}nav[aria-label=breadcrumb] ul li a{margin:calc(var(--pico-nav-link-spacing-vertical) * -1) 0;margin-inline-start:calc(var(--pico-nav-link-spacing-horizontal) * -1)}nav[aria-label=breadcrumb] ul li:not(:last-child):after{display:inline-block;position:absolute;width:calc(var(--pico-nav-link-spacing-horizontal) * 4);margin:0 calc(var(--pico-nav-link-spacing-horizontal) * -1);content:var(--pico-nav-breadcrumb-divider);color:var(--pico-muted-color);text-align:center;text-decoration:none;white-space:nowrap}nav[aria-label=breadcrumb] a[aria-current]:not([aria-current=false]){background-color:transparent;color:inherit;text-decoration:none;pointer-events:none}aside li,aside nav,aside ol,aside ul{display:block}aside li{padding:calc(var(--pico-nav-element-spacing-vertical) * .5) var(--pico-nav-element-spacing-horizontal)}aside li a{display:block}aside li [role=button]{margin:inherit}[dir=rtl] nav[aria-label=breadcrumb] ul li:not(:last-child) :after{content:"\\"}progress{display:inline-block;vertical-align:baseline}progress{-webkit-appearance:none;-moz-appearance:none;display:inline-block;appearance:none;width:100%;height:.5rem;margin-bottom:calc(var(--pico-spacing) * .5);overflow:hidden;border:0;border-radius:var(--pico-border-radius);background-color:var(--pico-progress-background-color);color:var(--pico-progress-color)}progress::-webkit-progress-bar{border-radius:var(--pico-border-radius);background:0 0}progress[value]::-webkit-progress-value{background-color:var(--pico-progress-color);-webkit-transition:inline-size var(--pico-transition);transition:inline-size var(--pico-transition)}progress::-moz-progress-bar{background-color:var(--pico-progress-color)}@media (prefers-reduced-motion:no-preference){progress:indeterminate{background:var(--pico-progress-background-color) linear-gradient(to right,var(--pico-progress-color) 30%,var(--pico-progress-background-color) 30%) top left/150% 150% no-repeat;animation:progress-indeterminate 1s linear infinite}progress:indeterminate[value]::-webkit-progress-value{background-color:transparent}progress:indeterminate::-moz-progress-bar{background-color:transparent}}@media (prefers-reduced-motion:no-preference){[dir=rtl] progress:indeterminate{animation-direction:reverse}}@keyframes progress-indeterminate{0%{background-position:200% 0}to{background-position:-200% 0}}[data-tooltip]{position:relative}[data-tooltip]:not(a,button,input){border-bottom:1px dotted;text-decoration:none;cursor:help}[data-tooltip]:after,[data-tooltip]:before,[data-tooltip][data-placement=top]:after,[data-tooltip][data-placement=top]:before{display:block;z-index:99;position:absolute;bottom:100%;left:50%;padding:.25rem .5rem;overflow:hidden;transform:translate(-50%,-.25rem);border-radius:var(--pico-border-radius);background:var(--pico-tooltip-background-color);content:attr(data-tooltip);color:var(--pico-tooltip-color);font-style:normal;font-weight:var(--pico-font-weight);font-size:.875rem;text-decoration:none;text-overflow:ellipsis;white-space:nowrap;opacity:0;pointer-events:none}[data-tooltip]:after,[data-tooltip][data-placement=top]:after{padding:0;transform:translate(-50%);border-top:.3rem solid;border-right:.3rem solid transparent;border-left:.3rem solid transparent;border-radius:0;background-color:transparent;content:"";color:var(--pico-tooltip-background-color)}[data-tooltip][data-placement=bottom]:after,[data-tooltip][data-placement=bottom]:before{top:100%;bottom:auto;transform:translate(-50%,.25rem)}[data-tooltip][data-placement=bottom]:after{transform:translate(-50%,-.3rem);border:.3rem solid transparent;border-bottom:.3rem solid}[data-tooltip][data-placement=left]:after,[data-tooltip][data-placement=left]:before{top:50%;right:100%;bottom:auto;left:auto;transform:translate(-.25rem,-50%)}[data-tooltip][data-placement=left]:after{transform:translate(.3rem,-50%);border:.3rem solid transparent;border-left:.3rem solid}[data-tooltip][data-placement=right]:after,[data-tooltip][data-placement=right]:before{top:50%;right:auto;bottom:auto;left:100%;transform:translate(.25rem,-50%)}[data-tooltip][data-placement=right]:after{transform:translate(-.3rem,-50%);border:.3rem solid transparent;border-right:.3rem solid}[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{opacity:1}@media (hover:hover) and (pointer:fine){[data-tooltip]:focus:after,[data-tooltip]:focus:before,[data-tooltip]:hover:after,[data-tooltip]:hover:before{--pico-tooltip-slide-to:translate(-50%, -.25rem);transform:translate(-50%,.75rem);animation-duration:.2s;animation-fill-mode:forwards;animation-name:tooltip-slide;opacity:0}[data-tooltip]:focus:after,[data-tooltip]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%, 0rem);transform:translate(-50%,-.25rem);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:focus:before,[data-tooltip][data-placement=bottom]:hover:after,[data-tooltip][data-placement=bottom]:hover:before{--pico-tooltip-slide-to:translate(-50%, .25rem);transform:translate(-50%,-.75rem);animation-name:tooltip-slide}[data-tooltip][data-placement=bottom]:focus:after,[data-tooltip][data-placement=bottom]:hover:after{--pico-tooltip-caret-slide-to:translate(-50%, -.3rem);transform:translate(-50%,-.5rem);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:focus:before,[data-tooltip][data-placement=left]:hover:after,[data-tooltip][data-placement=left]:hover:before{--pico-tooltip-slide-to:translate(-.25rem, -50%);transform:translate(.75rem,-50%);animation-name:tooltip-slide}[data-tooltip][data-placement=left]:focus:after,[data-tooltip][data-placement=left]:hover:after{--pico-tooltip-caret-slide-to:translate(.3rem, -50%);transform:translate(.05rem,-50%);animation-name:tooltip-caret-slide}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:focus:before,[data-tooltip][data-placement=right]:hover:after,[data-tooltip][data-placement=right]:hover:before{--pico-tooltip-slide-to:translate(.25rem, -50%);transform:translate(-.75rem,-50%);animation-name:tooltip-slide}[data-tooltip][data-placement=right]:focus:after,[data-tooltip][data-placement=right]:hover:after{--pico-tooltip-caret-slide-to:translate(-.3rem, -50%);transform:translate(-.05rem,-50%);animation-name:tooltip-caret-slide}}@keyframes tooltip-slide{to{transform:var(--pico-tooltip-slide-to);opacity:1}}@keyframes tooltip-caret-slide{50%{opacity:0}to{transform:var(--pico-tooltip-caret-slide-to);opacity:1}}[aria-controls]{cursor:pointer}[aria-disabled=true],[disabled]{cursor:not-allowed}[aria-hidden=false][hidden]{display:initial}[aria-hidden=false][hidden]:not(:focus){clip:rect(0,0,0,0);position:absolute}[tabindex],a,area,button,input,label,select,summary,textarea{-ms-touch-action:manipulation}[dir=rtl]{direction:rtl}@media (prefers-reduced-motion:reduce){:not([aria-busy=true]),:not([aria-busy=true]):after,:not([aria-busy=true]):before{background-attachment:initial!important;animation-duration:1ms!important;animation-delay:-1ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-delay:0s!important;transition-duration:0s!important}}.ctrl-btn-center.svelte-1s83zbq{display:grid!important;height:100%;width:100%;place-items:center}.maplibregl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgb(0 0 0/0)}.maplibregl-canvas{left:0;position:absolute;top:0}.maplibregl-map:fullscreen{height:100%;width:100%}.maplibregl-ctrl-group button.maplibregl-ctrl-compass{touch-action:none}.maplibregl-canvas-container.maplibregl-interactive,.maplibregl-ctrl-group button.maplibregl-ctrl-compass{cursor:grab;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none}.maplibregl-canvas-container.maplibregl-interactive.maplibregl-track-pointer{cursor:pointer}.maplibregl-canvas-container.maplibregl-interactive:active,.maplibregl-ctrl-group button.maplibregl-ctrl-compass:active{cursor:grabbing}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-canvas-container.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:pinch-zoom}.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan,.maplibregl-canvas-container.maplibregl-touch-zoom-rotate.maplibregl-touch-drag-pan .maplibregl-canvas{touch-action:none}.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures,.maplibregl-canvas-container.maplibregl-touch-drag-pan.maplibregl-cooperative-gestures .maplibregl-canvas{touch-action:pan-x pan-y}.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right,.maplibregl-ctrl-top-left,.maplibregl-ctrl-top-right{pointer-events:none;position:absolute;z-index:2}.maplibregl-ctrl-top-left{left:0;top:0}.maplibregl-ctrl-top-right{right:0;top:0}.maplibregl-ctrl-bottom-left{bottom:0;left:0}.maplibregl-ctrl-bottom-right{bottom:0;right:0}.maplibregl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.maplibregl-ctrl-top-left .maplibregl-ctrl{float:left;margin:10px 0 0 10px}.maplibregl-ctrl-top-right .maplibregl-ctrl{float:right;margin:10px 10px 0 0}.maplibregl-ctrl-bottom-left .maplibregl-ctrl{float:left;margin:0 0 10px 10px}.maplibregl-ctrl-bottom-right .maplibregl-ctrl{float:right;margin:0 10px 10px 0}.maplibregl-ctrl-group{background:#fff;border-radius:4px}.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px #0000001a}@media (-ms-high-contrast:active){.maplibregl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.maplibregl-ctrl-group button{background-color:transparent;border:0;box-sizing:border-box;cursor:pointer;display:block;height:29px;outline:none;padding:0;width:29px}.maplibregl-ctrl-group button+button{border-top:1px solid #ddd}.maplibregl-ctrl button .maplibregl-ctrl-icon{background-position:50%;background-repeat:no-repeat;display:block;height:100%;width:100%}@media (-ms-high-contrast:active){.maplibregl-ctrl-icon{background-color:transparent}.maplibregl-ctrl-group button+button{border-top:1px solid ButtonText}}.maplibregl-ctrl button::-moz-focus-inner{border:0;padding:0}.maplibregl-ctrl-attrib-button:focus,.maplibregl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl button:disabled{cursor:not-allowed}.maplibregl-ctrl button:disabled .maplibregl-ctrl-icon{opacity:.25}.maplibregl-ctrl button:not(:disabled):hover{background-color:#0000000d}.maplibregl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.maplibregl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.maplibregl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.maplibregl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.maplibregl-ctrl-group button:focus:only-child{border-radius:inherit}.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-zoom-out .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-zoom-in .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-shrink .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23999' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-compass .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 29 29'%3E%3Cpath d='m10.5 14 4-8 4 8z'/%3E%3Cpath fill='%23ccc' d='m10.5 16 4 8 4-8z'/%3E%3C/svg%3E")}}.maplibregl-ctrl button.maplibregl-ctrl-terrain .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%23333' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-terrain-enabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='22' height='22' fill='%2333b5e5' viewBox='0 0 22 22'%3E%3Cpath d='m1.754 13.406 4.453-4.851 3.09 3.09 3.281 3.277.969-.969-3.309-3.312 3.844-4.121 6.148 6.886h1.082v-.855l-7.207-8.07-4.84 5.187L6.169 6.57l-5.48 5.965v.871ZM.688 16.844h20.625v1.375H.688Zm0 0'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23aaa' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-waiting .maplibregl-ctrl-icon{animation:maplibregl-spin 2s linear infinite}@media (-ms-high-contrast:active){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23fff' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23999' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-active-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e58978' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%2333b5e5' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate.maplibregl-ctrl-geolocate-background-error .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23e54e33' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.maplibregl-ctrl button.maplibregl-ctrl-geolocate .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E")}.maplibregl-ctrl button.maplibregl-ctrl-geolocate:disabled .maplibregl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23666' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3Cpath fill='red' d='m14 5 1 1-9 9-1-1z'/%3E%3C/svg%3E")}}@keyframes maplibregl-spin{0%{transform:rotate(0)}to{transform:rotate(1turn)}}a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;cursor:pointer;display:block;height:23px;margin:0 0 -4px -4px;overflow:hidden;width:88px}a.maplibregl-ctrl-logo.maplibregl-compact{width:14px}@media (-ms-high-contrast:active){a.maplibregl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.maplibregl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='88' height='23' fill='none'%3E%3Cpath fill='%23000' fill-opacity='.4' fill-rule='evenodd' d='M17.408 16.796h-1.827l2.501-12.095h.198l3.324 6.533.988 2.19.988-2.19 3.258-6.533h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.929 5.644h-.098l-2.914-5.644-.757-1.71-.345 1.71zm1.958-3.42-.726 3.663a1.255 1.255 0 0 1-1.232 1.011h-1.827a1.255 1.255 0 0 1-1.229-1.509l2.501-12.095a1.255 1.255 0 0 1 1.23-1.001h.197a1.25 1.25 0 0 1 1.12.685l3.19 6.273 3.125-6.263a1.25 1.25 0 0 1 1.123-.695h.181a1.255 1.255 0 0 1 1.227.991l1.443 6.71a5 5 0 0 1 .314-.787l.009-.016a4.6 4.6 0 0 1 1.777-1.887c.782-.46 1.668-.667 2.611-.667a4.6 4.6 0 0 1 1.7.32l.306.134c.21-.16.474-.256.759-.256h1.694a1.255 1.255 0 0 1 1.212.925 1.255 1.255 0 0 1 1.212-.925h1.711c.284 0 .545.094.755.252.613-.3 1.312-.45 2.075-.45 1.356 0 2.557.445 3.482 1.4q.47.48.763 1.064V4.701a1.255 1.255 0 0 1 1.255-1.255h1.86A1.255 1.255 0 0 1 54.44 4.7v9.194h2.217c.19 0 .37.043.532.118v-4.77c0-.356.147-.678.385-.906a2.42 2.42 0 0 1-.682-1.71c0-.665.267-1.253.735-1.7a2.45 2.45 0 0 1 1.722-.674 2.43 2.43 0 0 1 1.705.675q.318.302.504.683V4.7a1.255 1.255 0 0 1 1.255-1.255h1.744A1.255 1.255 0 0 1 65.812 4.7v3.335a4.8 4.8 0 0 1 1.526-.246c.938 0 1.817.214 2.59.69a4.47 4.47 0 0 1 1.67 1.743v-.98a1.255 1.255 0 0 1 1.256-1.256h1.777c.233 0 .451.064.639.174a3.4 3.4 0 0 1 1.567-.372c.346 0 .861.02 1.285.232a1.25 1.25 0 0 1 .689 1.004 4.7 4.7 0 0 1 .853-.588c.795-.44 1.675-.647 2.61-.647 1.385 0 2.65.39 3.525 1.396.836.938 1.168 2.173 1.168 3.528q-.001.515-.056 1.051a1.255 1.255 0 0 1-.947 1.09l.408.952a1.255 1.255 0 0 1-.477 1.552c-.418.268-.92.463-1.458.612-.613.171-1.304.244-2.049.244-1.06 0-2.043-.207-2.886-.698l-.015-.008c-.798-.48-1.419-1.135-1.818-1.963l-.004-.008a5.8 5.8 0 0 1-.548-2.512q0-.429.053-.843a1.3 1.3 0 0 1-.333-.086l-.166-.004c-.223 0-.426.062-.643.228-.03.024-.142.139-.142.59v3.883a1.255 1.255 0 0 1-1.256 1.256h-1.777a1.255 1.255 0 0 1-1.256-1.256V15.69l-.032.057a4.8 4.8 0 0 1-1.86 1.833 5.04 5.04 0 0 1-2.484.634 4.5 4.5 0 0 1-1.935-.424 1.25 1.25 0 0 1-.764.258h-1.71a1.255 1.255 0 0 1-1.256-1.255V7.687a2.4 2.4 0 0 1-.428.625c.253.23.412.561.412.93v7.553a1.255 1.255 0 0 1-1.256 1.255h-1.843a1.25 1.25 0 0 1-.894-.373c-.228.23-.544.373-.894.373H51.32a1.255 1.255 0 0 1-1.256-1.255v-1.251l-.061.117a4.7 4.7 0 0 1-1.782 1.884 4.77 4.77 0 0 1-2.485.67 5.6 5.6 0 0 1-1.485-.188l.009 2.764a1.255 1.255 0 0 1-1.255 1.259h-1.729a1.255 1.255 0 0 1-1.255-1.255v-3.537a1.255 1.255 0 0 1-1.167.793h-1.679a1.25 1.25 0 0 1-.77-.263 4.5 4.5 0 0 1-1.945.429c-.885 0-1.724-.21-2.495-.632l-.017-.01a5 5 0 0 1-1.081-.836 1.255 1.255 0 0 1-1.254 1.312h-1.81a1.255 1.255 0 0 1-1.228-.99l-.782-3.625-2.044 3.939a1.25 1.25 0 0 1-1.115.676h-.098a1.25 1.25 0 0 1-1.116-.68l-2.061-3.994zM35.92 16.63l.207-.114.223-.15q.493-.356.735-.785l.061-.118.033 1.332h1.678V9.242h-1.694l-.033 1.267q-.133-.329-.526-.658l-.032-.028a3.2 3.2 0 0 0-.668-.428l-.27-.12a3.3 3.3 0 0 0-1.235-.23q-1.136-.001-1.974.493a3.36 3.36 0 0 0-1.3 1.382q-.445.89-.444 2.074 0 1.2.51 2.107a3.8 3.8 0 0 0 1.382 1.381 3.9 3.9 0 0 0 1.893.477q.795 0 1.455-.33zm-2.789-5.38q-.576.675-.575 1.762 0 1.102.559 1.794.576.675 1.645.675a2.25 2.25 0 0 0 .934-.19 2.2 2.2 0 0 0 .468-.29l.178-.161a2.2 2.2 0 0 0 .397-.561q.244-.5.244-1.15v-.115q0-.708-.296-1.267l-.043-.077a2.2 2.2 0 0 0-.633-.709l-.13-.086-.047-.028a2.1 2.1 0 0 0-1.073-.285q-1.052 0-1.629.692zm2.316 2.706c.163-.17.28-.407.28-.83v-.114c0-.292-.06-.508-.15-.68a.96.96 0 0 0-.353-.389.85.85 0 0 0-.464-.127c-.4 0-.56.114-.664.239l-.01.012c-.148.174-.275.45-.275.945 0 .506.122.801.27.99.097.11.266.224.68.224.303 0 .504-.09.687-.269zm7.545 1.705a2.6 2.6 0 0 0 .331.423q.319.33.755.548l.173.074q.65.255 1.49.255 1.02 0 1.844-.493a3.45 3.45 0 0 0 1.316-1.4q.493-.904.493-2.089 0-1.909-.988-2.913-.988-1.02-2.584-1.02-.898 0-1.575.347a3 3 0 0 0-.415.262l-.199.166a3.4 3.4 0 0 0-.64.82V9.242h-1.712v11.553h1.729l-.017-5.134zm.53-1.138q.206.29.48.5l.155.11.053.034q.51.296 1.119.297 1.07 0 1.645-.675.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.435 0-.835.16a2 2 0 0 0-.284.136 2 2 0 0 0-.363.254 2.2 2.2 0 0 0-.46.569l-.082.162a2.6 2.6 0 0 0-.213 1.072v.115q0 .707.296 1.267l.135.211zm.964-.818a1.1 1.1 0 0 0 .367.385.94.94 0 0 0 .476.118c.423 0 .59-.117.687-.23.159-.194.28-.478.28-.95 0-.53-.133-.8-.266-.952l-.021-.025c-.078-.094-.231-.221-.68-.221a1 1 0 0 0-.503.135l-.012.007a.86.86 0 0 0-.335.343c-.073.133-.132.324-.132.614v.115a1.4 1.4 0 0 0 .14.66zm15.7-6.222q.347-.346.346-.856a1.05 1.05 0 0 0-.345-.79 1.18 1.18 0 0 0-.84-.329q-.51 0-.855.33a1.05 1.05 0 0 0-.346.79q0 .51.346.855.345.346.856.346.51 0 .839-.346zm4.337 9.314.033-1.332q.191.403.59.747l.098.081a4 4 0 0 0 .316.224l.223.122a3.2 3.2 0 0 0 1.44.322 3.8 3.8 0 0 0 1.875-.477 3.5 3.5 0 0 0 1.382-1.366q.527-.89.526-2.09 0-1.184-.444-2.073a3.24 3.24 0 0 0-1.283-1.399q-.823-.51-1.942-.51a3.5 3.5 0 0 0-1.527.344l-.086.043-.165.09a3 3 0 0 0-.33.214q-.432.315-.656.707a2 2 0 0 0-.099.198l.082-1.283V4.701h-1.744v12.095zm.473-2.509a2.5 2.5 0 0 0 .566.7q.117.098.245.18l.144.08a2.1 2.1 0 0 0 .975.232q1.07 0 1.645-.675.576-.69.576-1.778 0-1.102-.576-1.777-.56-.691-1.645-.692a2.2 2.2 0 0 0-1.015.235q-.22.113-.415.282l-.15.142a2.1 2.1 0 0 0-.42.594q-.223.479-.223 1.1v.115q0 .705.293 1.26zm2.616-.293c.157-.191.28-.479.28-.967 0-.51-.13-.79-.276-.961l-.021-.026c-.082-.1-.232-.225-.67-.225a.87.87 0 0 0-.681.279l-.012.011c-.154.155-.274.38-.274.807v.115c0 .285.057.499.144.669a1.1 1.1 0 0 0 .367.405c.137.082.28.123.455.123.423 0 .59-.118.686-.23zm8.266-3.013q.345-.13.724-.14l.069-.002q.493 0 .642.099l.247-1.794q-.196-.099-.717-.099a2.3 2.3 0 0 0-.545.063 2 2 0 0 0-.411.148 2.2 2.2 0 0 0-.4.249 2.5 2.5 0 0 0-.485.499 2.7 2.7 0 0 0-.32.581l-.05.137v-1.48h-1.778v7.553h1.777v-3.884q0-.546.159-.943a1.5 1.5 0 0 1 .466-.636 2.5 2.5 0 0 1 .399-.253 2 2 0 0 1 .224-.099zm9.784 2.656.05-.922q0-1.743-.856-2.698-.838-.97-2.584-.97-1.119-.001-2.007.493a3.46 3.46 0 0 0-1.4 1.382q-.493.906-.493 2.106 0 1.07.428 1.975.428.89 1.332 1.432.906.526 2.255.526.973 0 1.668-.185l.044-.012.135-.04q.613-.184.984-.421l-.542-1.267q-.3.162-.642.274l-.297.087q-.51.131-1.3.131-.954 0-1.497-.444a1.6 1.6 0 0 1-.192-.193q-.366-.44-.512-1.234l-.004-.021zm-5.427-1.256-.003.022h3.752v-.138q-.011-.727-.288-1.118a1 1 0 0 0-.156-.176q-.46-.428-1.316-.428-.986 0-1.494.604-.379.45-.494 1.234zm-27.053 2.77V4.7h-1.86v12.095h5.333V15.15zm7.103-5.908v7.553h-1.843V9.242h1.843z'/%3E%3Cpath fill='%23fff' d='m19.63 11.151-.757-1.71-.345 1.71-1.12 5.644h-1.827L18.083 4.7h.197l3.325 6.533.988 2.19.988-2.19L26.839 4.7h.181l2.6 12.095h-1.81l-1.218-5.644-.362-1.71-.658 1.71-2.93 5.644h-.098l-2.913-5.644zm14.836 5.81q-1.02 0-1.893-.478a3.8 3.8 0 0 1-1.381-1.382q-.51-.906-.51-2.106 0-1.185.444-2.074a3.36 3.36 0 0 1 1.3-1.382q.839-.494 1.974-.494a3.3 3.3 0 0 1 1.234.231 3.3 3.3 0 0 1 .97.575q.396.33.527.659l.033-1.267h1.694v7.553H37.18l-.033-1.332q-.279.593-1.02 1.053a3.17 3.17 0 0 1-1.662.444zm.296-1.482q.938 0 1.58-.642.642-.66.642-1.711v-.115q0-.708-.296-1.267a2.2 2.2 0 0 0-.807-.872 2.1 2.1 0 0 0-1.119-.313q-1.053 0-1.629.692-.575.675-.575 1.76 0 1.103.559 1.795.577.675 1.645.675zm6.521-6.237h1.711v1.4q.906-1.597 2.83-1.597 1.596 0 2.584 1.02.988 1.005.988 2.914 0 1.185-.493 2.09a3.46 3.46 0 0 1-1.316 1.399 3.5 3.5 0 0 1-1.844.493q-.954 0-1.662-.329a2.67 2.67 0 0 1-1.086-.97l.017 5.134h-1.728zm4.048 6.22q1.07 0 1.645-.674.577-.69.576-1.762 0-1.119-.576-1.777-.558-.675-1.645-.675-.592 0-1.12.296-.51.28-.822.823-.296.527-.296 1.234v.115q0 .708.296 1.267.313.543.823.855.51.296 1.119.297z'/%3E%3Cpath fill='%23e1e3e9' d='M51.325 4.7h1.86v10.45h3.473v1.646h-5.333zm7.12 4.542h1.843v7.553h-1.843zm.905-1.415a1.16 1.16 0 0 1-.856-.346 1.17 1.17 0 0 1-.346-.856 1.05 1.05 0 0 1 .346-.79q.346-.329.856-.329.494 0 .839.33a1.05 1.05 0 0 1 .345.79 1.16 1.16 0 0 1-.345.855q-.33.346-.84.346zm7.875 9.133a3.17 3.17 0 0 1-1.662-.444q-.723-.46-1.004-1.053l-.033 1.332h-1.71V4.701h1.743v4.657l-.082 1.283q.279-.658 1.086-1.119a3.5 3.5 0 0 1 1.778-.477q1.119 0 1.942.51a3.24 3.24 0 0 1 1.283 1.4q.445.888.444 2.072 0 1.201-.526 2.09a3.5 3.5 0 0 1-1.382 1.366 3.8 3.8 0 0 1-1.876.477zm-.296-1.481q1.069 0 1.645-.675.577-.69.577-1.778 0-1.102-.577-1.776-.56-.691-1.645-.692a2.12 2.12 0 0 0-1.58.659q-.642.641-.642 1.694v.115q0 .71.296 1.267a2.4 2.4 0 0 0 .807.872 2.1 2.1 0 0 0 1.119.313zm5.927-6.237h1.777v1.481q.263-.757.856-1.217a2.14 2.14 0 0 1 1.349-.46q.527 0 .724.098l-.247 1.794q-.149-.099-.642-.099-.774 0-1.416.494-.626.493-.626 1.58v3.883h-1.777V9.242zm9.534 7.718q-1.35 0-2.255-.526-.904-.543-1.332-1.432a4.6 4.6 0 0 1-.428-1.975q0-1.2.493-2.106a3.46 3.46 0 0 1 1.4-1.382q.889-.495 2.007-.494 1.744 0 2.584.97.855.956.856 2.7 0 .444-.05.92h-5.43q.18 1.005.708 1.45.542.443 1.497.443.79 0 1.3-.131a4 4 0 0 0 .938-.362l.542 1.267q-.411.263-1.119.46-.708.198-1.711.197zm1.596-4.558q.016-1.02-.444-1.432-.46-.428-1.316-.428-1.728 0-1.991 1.86z'/%3E%3Cpath d='M5.074 15.948a.484.657 0 0 0-.486.659v1.84a.484.657 0 0 0 .486.659h4.101a.484.657 0 0 0 .486-.659v-1.84a.484.657 0 0 0-.486-.659zm3.56 1.16H5.617v.838h3.017z' style='fill:%23fff;fill-rule:evenodd;stroke-width:1.03600001'/%3E%3Cg style='stroke-width:1.12603545'%3E%3Cpath d='M-9.408-1.416c-3.833-.025-7.056 2.912-7.08 6.615-.02 3.08 1.653 4.832 3.107 6.268.903.892 1.721 1.74 2.32 2.902l-.525-.004c-.543-.003-.992.304-1.24.639a1.87 1.87 0 0 0-.362 1.121l-.011 1.877c-.003.402.104.787.347 1.125.244.338.688.653 1.23.656l4.142.028c.542.003.99-.306 1.238-.641a1.87 1.87 0 0 0 .363-1.121l.012-1.875a1.87 1.87 0 0 0-.348-1.127c-.243-.338-.688-.653-1.23-.656l-.518-.004c.597-1.145 1.425-1.983 2.348-2.87 1.473-1.414 3.18-3.149 3.2-6.226-.016-3.59-2.923-6.684-6.993-6.707m-.006 1.1v.002c3.274.02 5.92 2.532 5.9 5.6-.017 2.706-1.39 4.026-2.863 5.44-1.034.994-2.118 2.033-2.814 3.633-.018.041-.052.055-.075.065q-.013.004-.02.01a.34.34 0 0 1-.226.084.34.34 0 0 1-.224-.086l-.092-.077c-.699-1.615-1.768-2.669-2.781-3.67-1.454-1.435-2.797-2.762-2.78-5.478.02-3.067 2.7-5.545 5.975-5.523m-.02 2.826c-1.62-.01-2.944 1.315-2.955 2.96-.01 1.646 1.295 2.988 2.916 2.999h.002c1.621.01 2.943-1.316 2.953-2.961.011-1.646-1.294-2.988-2.916-2.998m-.005 1.1c1.017.006 1.829.83 1.822 1.89s-.83 1.874-1.848 1.867c-1.018-.006-1.829-.83-1.822-1.89s.83-1.874 1.848-1.868m-2.155 11.857 4.14.025c.271.002.49.305.487.676l-.013 1.875c-.003.37-.224.67-.495.668l-4.14-.025c-.27-.002-.487-.306-.485-.676l.012-1.875c.003-.37.224-.67.494-.668' style='color:%23000;font-style:normal;font-variant:normal;font-weight:400;font-stretch:normal;font-size:medium;line-height:normal;font-family:sans-serif;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:%23000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;clip-rule:evenodd;display:inline;overflow:visible;visibility:visible;opacity:1;isolation:auto;mix-blend-mode:normal;color-interpolation:sRGB;color-interpolation-filters:linearRGB;solid-color:%23000;solid-opacity:1;vector-effect:none;fill:%23000;fill-opacity:.4;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;color-rendering:auto;image-rendering:auto;shape-rendering:auto;text-rendering:auto' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-9.415-.316C-12.69-.338-15.37 2.14-15.39 5.207c-.017 2.716 1.326 4.041 2.78 5.477 1.013 1 2.081 2.055 2.78 3.67l.092.076a.34.34 0 0 0 .225.086.34.34 0 0 0 .227-.083l.019-.01c.022-.009.057-.024.074-.064.697-1.6 1.78-2.64 2.814-3.634 1.473-1.414 2.847-2.733 2.864-5.44.02-3.067-2.627-5.58-5.901-5.601m-.057 8.784c1.621.011 2.944-1.315 2.955-2.96.01-1.646-1.295-2.988-2.916-2.999-1.622-.01-2.945 1.315-2.955 2.96s1.295 2.989 2.916 3' style='clip-rule:evenodd;fill:%23e1e3e9;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3Cpath d='M-11.594 15.465c-.27-.002-.492.297-.494.668l-.012 1.876c-.003.371.214.673.485.675l4.14.027c.271.002.492-.298.495-.668l.012-1.877c.003-.37-.215-.672-.485-.674z' style='clip-rule:evenodd;fill:%23fff;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.47727823;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:.4' transform='translate(15.553 2.85)scale(.88807)'/%3E%3C/g%3E%3C/svg%3E")}}.maplibregl-ctrl.maplibregl-ctrl-attrib{background-color:#ffffff80;margin:0;padding:0 5px}@media screen{.maplibregl-ctrl-attrib.maplibregl-compact{background-color:#fff;border-radius:12px;box-sizing:content-box;color:#000;margin:10px;min-height:20px;padding:2px 24px 2px 0;position:relative}.maplibregl-ctrl-attrib.maplibregl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact-show,.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact-show{border-radius:12px;padding:2px 8px 2px 28px}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-inner{display:none}.maplibregl-ctrl-attrib-button{background-color:#ffffff80;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E");border:0;border-radius:12px;box-sizing:border-box;cursor:pointer;display:none;height:24px;outline:none;position:absolute;right:0;top:0;width:24px}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;list-style:none}.maplibregl-ctrl-attrib summary.maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.maplibregl-ctrl-bottom-left .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-top-left .maplibregl-ctrl-attrib-button{left:0}.maplibregl-ctrl-attrib.maplibregl-compact .maplibregl-ctrl-attrib-button,.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-inner{display:block}.maplibregl-ctrl-attrib.maplibregl-compact-show .maplibregl-ctrl-attrib-button{background-color:#0000000d}.maplibregl-ctrl-bottom-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;right:0}.maplibregl-ctrl-top-right>.maplibregl-ctrl-attrib.maplibregl-compact:after{right:0;top:0}.maplibregl-ctrl-top-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{left:0;top:0}.maplibregl-ctrl-bottom-left>.maplibregl-ctrl-attrib.maplibregl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='%23fff' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.maplibregl-ctrl-attrib.maplibregl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill-rule='evenodd' viewBox='0 0 20 20'%3E%3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E%3C/svg%3E")}}.maplibregl-ctrl-attrib a{color:#000000bf;text-decoration:none}.maplibregl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.maplibregl-attrib-empty{display:none}.maplibregl-ctrl-scale{background-color:#ffffffbf;border:2px solid #333;border-top:#333;box-sizing:border-box;color:#333;font-size:10px;padding:0 5px}.maplibregl-popup{display:flex;left:0;pointer-events:none;position:absolute;top:0;will-change:transform}.maplibregl-popup-anchor-top,.maplibregl-popup-anchor-top-left,.maplibregl-popup-anchor-top-right{flex-direction:column}.maplibregl-popup-anchor-bottom,.maplibregl-popup-anchor-bottom-left,.maplibregl-popup-anchor-bottom-right{flex-direction:column-reverse}.maplibregl-popup-anchor-left{flex-direction:row}.maplibregl-popup-anchor-right{flex-direction:row-reverse}.maplibregl-popup-tip{border:10px solid transparent;height:0;width:0;z-index:1}.maplibregl-popup-anchor-top .maplibregl-popup-tip{align-self:center;border-bottom-color:#fff;border-top:none}.maplibregl-popup-anchor-top-left .maplibregl-popup-tip{align-self:flex-start;border-bottom-color:#fff;border-left:none;border-top:none}.maplibregl-popup-anchor-top-right .maplibregl-popup-tip{align-self:flex-end;border-bottom-color:#fff;border-right:none;border-top:none}.maplibregl-popup-anchor-bottom .maplibregl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.maplibregl-popup-anchor-left .maplibregl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.maplibregl-popup-anchor-right .maplibregl-popup-tip{align-self:center;border-left-color:#fff;border-right:none}.maplibregl-popup-close-button{background-color:transparent;border:0;border-radius:0 3px 0 0;cursor:pointer;position:absolute;right:0;top:0}.maplibregl-popup-close-button:hover{background-color:#0000000d}.maplibregl-popup-content{background:#fff;border-radius:3px;box-shadow:0 1px 2px #0000001a;padding:15px 10px;pointer-events:auto;position:relative}.maplibregl-popup-anchor-top-left .maplibregl-popup-content{border-top-left-radius:0}.maplibregl-popup-anchor-top-right .maplibregl-popup-content{border-top-right-radius:0}.maplibregl-popup-anchor-bottom-left .maplibregl-popup-content{border-bottom-left-radius:0}.maplibregl-popup-anchor-bottom-right .maplibregl-popup-content{border-bottom-right-radius:0}.maplibregl-popup-track-pointer{display:none}.maplibregl-popup-track-pointer *{pointer-events:none;-webkit-user-select:none;user-select:none}.maplibregl-map:hover .maplibregl-popup-track-pointer{display:flex}.maplibregl-map:active .maplibregl-popup-track-pointer{display:none}.maplibregl-marker{left:0;position:absolute;top:0;transition:opacity .2s;will-change:transform}.maplibregl-user-location-dot,.maplibregl-user-location-dot:before{background-color:#1da1f2;border-radius:50%;height:15px;width:15px}.maplibregl-user-location-dot:before{animation:maplibregl-user-location-dot-pulse 2s infinite;content:"";position:absolute}.maplibregl-user-location-dot:after{border:2px solid #fff;border-radius:50%;box-shadow:0 0 3px #00000059;box-sizing:border-box;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px}@keyframes maplibregl-user-location-dot-pulse{0%{opacity:1;transform:scale(1)}70%{opacity:0;transform:scale(3)}to{opacity:0;transform:scale(1)}}.maplibregl-user-location-dot-stale{background-color:#aaa}.maplibregl-user-location-dot-stale:after{display:none}.maplibregl-user-location-accuracy-circle{background-color:#1da1f233;border-radius:100%;height:1px;width:1px}.maplibregl-crosshair,.maplibregl-crosshair .maplibregl-interactive,.maplibregl-crosshair .maplibregl-interactive:active{cursor:crosshair}.maplibregl-boxzoom{background:#fff;border:2px dotted #202020;height:0;left:0;opacity:.5;position:absolute;top:0;width:0}.maplibregl-cooperative-gesture-screen{align-items:center;background:rgba(0,0,0,.4);color:#fff;display:flex;font-size:1.4em;top:0;right:0;bottom:0;left:0;justify-content:center;line-height:1.2;opacity:0;padding:1rem;pointer-events:none;position:absolute;transition:opacity 1s ease 1s;z-index:99999}.maplibregl-cooperative-gesture-screen.maplibregl-show{opacity:1;transition:opacity .05s}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:none}@media (hover:none),(width <= 480px){.maplibregl-cooperative-gesture-screen .maplibregl-desktop-message{display:none}.maplibregl-cooperative-gesture-screen .maplibregl-mobile-message{display:block}}.maplibregl-pseudo-fullscreen{height:100%!important;left:0!important;position:fixed!important;top:0!important;width:100%!important;z-index:99999}.expand-map.svelte-p00lfq{position:absolute;top:0;bottom:0;left:0;right:0}svg.svelte-d2loi5{display:block;fill:#e15042}li.svelte-ltkwvy.svelte-ltkwvy{text-align:left;cursor:default;display:grid;grid-template-columns:40px 1fr;color:var(--color-text);padding:8px 0;font-size:14px;line-height:18px;min-width:fit-content}li.svelte-ltkwvy.svelte-ltkwvy:first-child{padding-top:10px}li.svelte-ltkwvy.svelte-ltkwvy:last-child{padding-bottom:10px}li.selected.svelte-ltkwvy.svelte-ltkwvy{background-color:#f3f6ff}li.selected.svelte-ltkwvy.svelte-ltkwvy{animation:svelte-ltkwvy-backAndForth 5s linear infinite}li.selected.svelte-ltkwvy .primary.svelte-ltkwvy{color:#2b8bfb}li.svelte-ltkwvy>img.svelte-ltkwvy{align-self:center;justify-self:center;opacity:.75}.texts.svelte-ltkwvy.svelte-ltkwvy{padding:0 17px 0 0}.texts.svelte-ltkwvy>.svelte-ltkwvy{white-space:nowrap;display:block;min-width:fit-content}.primary.svelte-ltkwvy.svelte-ltkwvy{font-weight:600}.secondary.svelte-ltkwvy.svelte-ltkwvy{color:#aeb6c7;padding-left:4px}.line2.svelte-ltkwvy.svelte-ltkwvy{color:#aeb6c7}@keyframes svelte-ltkwvy-backAndForth{0%{transform:translate(0)}10%{transform:translate(0)}45%{transform:translate(calc(-100% + 270px))}55%{transform:translate(calc(-100% + 270px))}90%{transform:translate(0)}to{transform:translate(0)}}div.svelte-7cmwmc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;display:flex;align-items:center}svg.svelte-7cmwmc{animation:svelte-7cmwmc-rotate .8s infinite cubic-bezier(.45,.05,.55,.95)}@keyframes svelte-7cmwmc-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}svg.svelte-gzo3ar.svelte-gzo3ar{display:block;fill:#6b7c93;stroke:#6b7c93}.list-icon.svelte-gzo3ar.svelte-gzo3ar{grid-row:1/3;align-self:center;margin:8px}.in-map.svelte-gzo3ar.svelte-gzo3ar{height:30px}.maplibregl-canvas-container .marker-selected{z-index:1}.maplibregl-canvas-container svg.svelte-gzo3ar path.svelte-gzo3ar,.leaflet-map-pane svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#3170fe;stroke:#3170fe}.marker-selected svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#98b7ff;stroke:#3170fe}.marker-reverse svg.svelte-gzo3ar path.svelte-gzo3ar{fill:silver;stroke:gray}.marker-interactive{cursor:pointer!important}.maptiler-gc-popup>.maplibregl-popup-content{padding:2px 8px}svg.svelte-en2qvf{display:block;fill:var(--color-icon-button)}svg.svelte-1bpbt60{display:block;stroke:var(--color-icon-button)}form.svelte-zh3kmv.svelte-zh3kmv{font-family:Open Sans,Ubuntu,Helvetica Neue,Arial,Helvetica,sans-serif;position:relative;background-color:#fff;z-index:10;border-radius:4px;transition:max-width .25s;box-shadow:0 2px 5px #33335926;--color-text:#444952;--color-icon-button:#444952}form.svelte-zh3kmv.svelte-zh3kmv,form.svelte-zh3kmv .svelte-zh3kmv,form.svelte-zh3kmv .svelte-zh3kmv:after,form.svelte-zh3kmv .svelte-zh3kmv:before{box-sizing:border-box}form.can-collapse.svelte-zh3kmv.svelte-zh3kmv{max-width:29px}form.svelte-zh3kmv.svelte-zh3kmv,form.svelte-zh3kmv.svelte-zh3kmv:focus-within,form.svelte-zh3kmv.svelte-zh3kmv:hover{width:270px;max-width:270px}input.svelte-zh3kmv.svelte-zh3kmv{font:inherit;font-size:14px;flex-grow:1;min-height:29px;background-color:transparent;color:#444952;white-space:nowrap;overflow:hidden;border:0;margin:0;padding:0}input.svelte-zh3kmv.svelte-zh3kmv:focus{color:#444952;outline:0;outline:none;box-shadow:none}ul.svelte-zh3kmv.svelte-zh3kmv,div.error.svelte-zh3kmv.svelte-zh3kmv,div.no-results.svelte-zh3kmv.svelte-zh3kmv{background-color:#fff;border-radius:4px;left:0;list-style:none;margin:0;padding:0;position:absolute;width:100%;top:calc(100% + 6px);overflow:hidden}ul.svelte-zh3kmv.svelte-zh3kmv{font-size:14px;line-height:16px;box-shadow:0 5px 10px #33335926}div.error.svelte-zh3kmv.svelte-zh3kmv,div.no-results.svelte-zh3kmv.svelte-zh3kmv{font:inherit;line-height:18px;font-size:12px;display:flex;gap:16px}div.error.svelte-zh3kmv.svelte-zh3kmv{padding:16px;font-weight:600;color:#e25041;background-color:#fbeae8}div.error.svelte-zh3kmv div.svelte-zh3kmv{flex-grow:1}div.error.svelte-zh3kmv svg{flex-shrink:0;width:20px;height:20px}div.error.svelte-zh3kmv button.svelte-zh3kmv{flex-shrink:0}div.error.svelte-zh3kmv button.svelte-zh3kmv>svg{width:13px;fill:#e25041}div.error.svelte-zh3kmv button.svelte-zh3kmv:hover svg,div.error.svelte-zh3kmv button.svelte-zh3kmv:active svg{fill:#444952}div.no-results.svelte-zh3kmv.svelte-zh3kmv{padding:14px 24px 14px 16px;font-weight:400;color:#6b7c93;box-shadow:0 5px 10px #33335926}div.no-results.svelte-zh3kmv svg{margin-top:4px;flex-shrink:0;width:20px;height:20px;width:30px;height:30px}.maplibregl-ctrl-bottom-left ul.svelte-zh3kmv.svelte-zh3kmv,.maplibregl-ctrl-bottom-right ul.svelte-zh3kmv.svelte-zh3kmv{top:auto;bottom:100%}button.svelte-zh3kmv.svelte-zh3kmv{padding:0;margin:0;border:0;background-color:transparent;height:auto;width:auto}button.svelte-zh3kmv.svelte-zh3kmv:hover{background-color:transparent}button.svelte-zh3kmv:hover svg,button.svelte-zh3kmv:active svg{fill:#2b8bfb}.input-group.svelte-zh3kmv.svelte-zh3kmv{display:flex;align-items:stretch;gap:7px;padding-inline:8px;border-radius:4px;overflow:hidden}.input-group.svelte-zh3kmv.svelte-zh3kmv:focus-within{outline:#2b8bfb solid 2px}.search-button.svelte-zh3kmv.svelte-zh3kmv{flex-shrink:0}.maplibregl-ctrl-geocoder:not(.maptiler-ctrl) .search-button svg{width:12px!important;transform:translate(.5px)}.clear-button-container.svelte-zh3kmv.svelte-zh3kmv{display:flex;display:none;position:relative;align-items:stretch}.clear-button-container.displayable.svelte-zh3kmv.svelte-zh3kmv{display:flex;flex-shrink:0}.maplibregl-ctrl-geocoder{position:relative;z-index:3}.maptiler-ctrl:not(:empty){box-shadow:none}.maptiler-ctrl .input-group.svelte-zh3kmv.svelte-zh3kmv{padding-inline:8px;border:white solid 2px}.maptiler-ctrl .input-group.svelte-zh3kmv.svelte-zh3kmv:focus-within{border:#2b8bfb solid 2px;outline:0;outline:none}.maptiler-ctrl form.can-collapse.svelte-zh3kmv.svelte-zh3kmv{max-width:33px}.maptiler-ctrl form.svelte-zh3kmv.svelte-zh3kmv,.maptiler-ctrl form.svelte-zh3kmv.svelte-zh3kmv:focus-within,.maptiler-ctrl form.svelte-zh3kmv.svelte-zh3kmv:hover{width:270px;max-width:270px}div.svelte-ixhnie{position:absolute;top:20px;left:50px}div.svelte-3nmiww{float:left}.top.svelte-3nmiww{width:100%;height:10vh}.left.svelte-3nmiww{width:25%;height:90vh;overflow:auto;padding:8px}.main.svelte-3nmiww{width:75%;height:90vh}.popup .maplibregl-popup-content{background-color:var(--pico-background-color)}.dot.svelte-1gcxp27{width:30px;height:30px;border-radius:50%;display:flex;justify-content:center;align-items:center;background-color:gray;font-weight:700} diff --git a/assets/main-382b89ca.js b/assets/main-382b89ca.js new file mode 100644 index 0000000..af2566b --- /dev/null +++ b/assets/main-382b89ca.js @@ -0,0 +1,665 @@ +var _P=Object.defineProperty;var yP=(t,e,n)=>e in t?_P(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n;var Ti=(t,e,n)=>(yP(t,typeof e!="symbol"?e+"":e,n),n);(function(){const e=document.createElement("link").relList;if(e&&e.supports&&e.supports("modulepreload"))return;for(const i of document.querySelectorAll('link[rel="modulepreload"]'))r(i);new MutationObserver(i=>{for(const a of i)if(a.type==="childList")for(const c of a.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(i){const a={};return i.integrity&&(a.integrity=i.integrity),i.referrerPolicy&&(a.referrerPolicy=i.referrerPolicy),i.crossOrigin==="use-credentials"?a.credentials="include":i.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function r(i){if(i.ep)return;i.ep=!0;const a=n(i);fetch(i.href,a)}})();function Mt(){}function Ai(t,e){for(const n in e)t[n]=e[n];return t}function yE(t){return t()}function Fx(){return Object.create(null)}function ti(t){t.forEach(yE)}function X_(t){return typeof t=="function"}function Zt(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}let Ag;function Vn(t,e){return t===e?!0:(Ag||(Ag=document.createElement("a")),Ag.href=e,t===Ag.href)}function vP(t){return Object.keys(t).length===0}function vE(t,...e){if(t==null){for(const r of e)r(void 0);return Mt}const n=t.subscribe(...e);return n.unsubscribe?()=>n.unsubscribe():n}function Va(t){let e;return vE(t,n=>e=n)(),e}function St(t,e,n){t.$$.on_destroy.push(vE(e,n))}function ui(t,e,n,r){if(t){const i=bE(t,e,n,r);return t[0](i)}}function bE(t,e,n,r){return t[1]&&r?Ai(n.ctx.slice(),t[1](r(e))):n.ctx}function ci(t,e,n,r){if(t[2]&&r){const i=t[2](r(n));if(e.dirty===void 0)return i;if(typeof i=="object"){const a=[],c=Math.max(e.dirty.length,i.length);for(let l=0;l32){const e=[],n=t.ctx.length/32;for(let r=0;rt.removeEventListener(e,n,r)}function xP(t){return function(e){return e.preventDefault(),t.call(this,e)}}function Ie(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function wP(t){let e;return{p(...n){e=n,e.forEach(r=>t.push(r))},r(){e.forEach(n=>t.splice(t.indexOf(n),1))}}}function SP(t){return t===""?null:+t}function EP(t){return Array.from(t.childNodes)}function mr(t,e){e=""+e,t.data!==e&&(t.data=e)}function Jo(t,e){t.value=e??""}function nr(t,e,n,r){n==null?t.style.removeProperty(e):t.style.setProperty(e,n,r?"important":"")}function l_(t,e,n){for(let r=0;r{const i=t.$$.callbacks[e];if(i){const a=IP(e,n,{cancelable:r});return i.slice().forEach(c=>{c.call(t,a)}),!a.defaultPrevented}return!0}}function wE(t,e){return pm().$$.context.set(t,e),e}function CP(t){return pm().$$.context.get(t)}function ir(t,e){const n=t.$$.callbacks[e.type];n&&n.slice().forEach(r=>r.call(this,e))}const yf=[],Vi=[];let Ef=[];const av=[],SE=Promise.resolve();let lv=!1;function EE(){lv||(lv=!0,SE.then(IE))}function TP(){return EE(),SE}function qd(t){Ef.push(t)}function $c(t){av.push(t)}const M0=new Set;let ff=0;function IE(){if(ff!==0)return;const t=jd;do{try{for(;fft.indexOf(r)===-1?e.push(r):n.push(r)),n.forEach(r=>r()),Ef=e}const Wg=new Set;let Gc;function qn(){Gc={r:0,c:[],p:Gc}}function $n(){Gc.r||ti(Gc.c),Gc=Gc.p}function pe(t,e){t&&t.i&&(Wg.delete(t),t.i(e))}function xe(t,e,n,r){if(t&&t.o){if(Wg.has(t))return;Wg.add(t),Gc.c.push(()=>{Wg.delete(t),r&&(n&&t.d(1),r())}),t.o(e)}else r&&r()}function vs(t){return(t==null?void 0:t.length)!==void 0?t:Array.from(t)}function MP(t,e){xe(t,1,1,()=>{e.delete(t.key)})}function AP(t,e,n,r,i,a,c,l,m,b,S,E){let T=t.length,A=a.length,D=T;const O={};for(;D--;)O[t[D].key]=D;const z=[],G=new Map,F=new Map,j=[];for(D=A;D--;){const re=E(i,a,D),ye=n(re);let ae=c.get(ye);ae?r&&j.push(()=>ae.p(re,e)):(ae=b(ye,re),ae.c()),G.set(ye,z[D]=ae),ye in O&&F.set(ye,Math.abs(D-O[ye]))}const Z=new Set,J=new Set;function he(re){pe(re,1),re.m(l,S),c.set(re.key,re),S=re.first,A--}for(;T&&A;){const re=z[A-1],ye=t[T-1],ae=re.key,Ae=ye.key;re===ye?(S=re.first,T--,A--):G.has(Ae)?!c.has(ae)||Z.has(ae)?he(re):J.has(Ae)?T--:F.get(ae)>F.get(Ae)?(J.add(ae),he(re)):(Z.add(Ae),T--):(m(ye,c),T--)}for(;T--;){const re=t[T];G.has(re.key)||m(re,c)}for(;A;)he(z[A-1]);return ti(j),z}function CE(t,e){const n={},r={},i={$$scope:1};let a=t.length;for(;a--;){const c=t[a],l=e[a];if(l){for(const m in c)m in l||(r[m]=1);for(const m in l)i[m]||(n[m]=l[m],i[m]=1);t[a]=l}else for(const m in c)i[m]=1}for(const c in r)c in n||(n[c]=void 0);return n}function Wc(t,e,n){const r=t.$$.props[e];r!==void 0&&(t.$$.bound[r]=n,n(t.$$.ctx[r]))}function We(t){t&&t.c()}function je(t,e,n){const{fragment:r,after_update:i}=t.$$;r&&r.m(e,n),qd(()=>{const a=t.$$.on_mount.map(yE).filter(X_);t.$$.on_destroy?t.$$.on_destroy.push(...a):ti(a),t.$$.on_mount=[]}),i.forEach(qd)}function qe(t,e){const n=t.$$;n.fragment!==null&&(PP(n.after_update),ti(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function kP(t,e){t.$$.dirty[0]===-1&&(yf.push(t),EE(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const D=A.length?A[0]:T;return b.ctx&&i(b.ctx[E],b.ctx[E]=D)&&(!b.skip_bound&&b.bound[E]&&b.bound[E](D),S&&kP(t,E)),T}):[],b.update(),S=!0,ti(b.before_update),b.fragment=r?r(b.ctx):!1,e.target){if(e.hydrate){const E=EP(e.target);b.fragment&&b.fragment.l(E),E.forEach(ve)}else b.fragment&&b.fragment.c();e.intro&&pe(t.$$.fragment),je(t,e.target,e.anchor),IE()}Rd(m)}class nn{constructor(){Ti(this,"$$");Ti(this,"$$set")}$destroy(){qe(this,1),this.$destroy=Mt}$on(e,n){if(!X_(n))return Mt;const r=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return r.push(n),()=>{const i=r.indexOf(n);i!==-1&&r.splice(i,1)}}$set(e){this.$$set&&!vP(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const DP="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(DP);function Bx(t){let e,n;return{c(){e=de("div"),n=dt(t[0]),Ie(e,"class","svelte-1uuov7f")},m(r,i){be(r,e,i),se(e,n)},p(r,i){i&1&&mr(n,r[0])},d(r){r&&ve(e)}}}function RP(t){let e,n=t[0]&&Bx(t);return{c(){n&&n.c(),e=zo()},m(r,i){n&&n.m(r,i),be(r,e,i)},p(r,[i]){r[0]?n?n.p(r,i):(n=Bx(r),n.c(),n.m(e.parentNode,e)):n&&(n.d(1),n=null)},i:Mt,o:Mt,d(r){r&&ve(e),n&&n.d(r)}}}function NP(t,e,n){let{loading:r}=e;return t.$$set=i=>{"loading"in i&&n(0,r=i.loading)},[r]}class TE extends nn{constructor(e){super(),tn(this,e,NP,RP,Zt,{loading:0})}}const OP=t=>({dialog:t&1}),Vx=t=>({dialog:t[0]});function zP(t){let e,n,r,i,a;const c=t[4].default,l=ui(c,t,t[3],Vx);return{c(){e=de("dialog"),n=de("article"),l&&l.c(),e.open=!0},m(m,b){be(m,e,b),se(e,n),l&&l.m(n,null),t[6](e),r=!0,i||(a=[Lt(window,"click",t[1]),Lt(window,"keydown",t[2]),Lt(e,"close",t[5])],i=!0)},p(m,[b]){l&&l.p&&(!r||b&9)&&hi(l,c,m,m[3],r?ci(c,m[3],b,OP):fi(m[3]),Vx)},i(m){r||(pe(l,m),r=!0)},o(m){xe(l,m),r=!1},d(m){m&&ve(e),l&&l.d(m),t[6](null),i=!1,ti(a)}}}function FP(t,e,n){let{$$slots:r={},$$scope:i}=e,a;function c(S){a.open&&S.target==a&&a.close()}function l(S){(S.key=="Escape"||S.key=="Enter")&&(S.stopPropagation(),a.close())}function m(S){ir.call(this,t,S)}function b(S){Vi[S?"unshift":"push"](()=>{a=S,n(0,a)})}return t.$$set=S=>{"$$scope"in S&&n(3,i=S.$$scope)},[a,c,l,i,r,m,b]}class a1 extends nn{constructor(e){super(),tn(this,e,FP,zP,Zt,{})}}function Ux(t,e,n){const r=t.slice();return r[1]=e[n][0],r[2]=e[n][1],r}function Gx(t){let e,n,r=t[1]+"",i,a,c,l=t[2]+"",m,b;return{c(){e=de("tr"),n=de("td"),i=dt(r),a=$e(),c=de("td"),m=dt(l),b=$e()},m(S,E){be(S,e,E),se(e,n),se(n,i),se(e,a),se(e,c),se(c,m),se(e,b)},p(S,E){E&1&&r!==(r=S[1]+"")&&mr(i,r),E&1&&l!==(l=S[2]+"")&&mr(m,l)},d(S){S&&ve(e)}}}function BP(t){let e,n,r=vs(Object.entries(t[0])),i=[];for(let a=0;a{"properties"in i&&n(0,r=i.properties)},[r]}class K_ extends nn{constructor(e){super(),tn(this,e,VP,BP,Zt,{properties:0})}}function jx(t,e){let n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(e)),n.setAttribute("download",t),document.body.appendChild(n),n.click(),document.body.removeChild(n)}function Mr(t){if(t==null||t==null)throw new Error("Oops, notNull given something null");return t}let ct;const Ql=new Array(128).fill(void 0);Ql.push(void 0,null,!0,!1);function _n(t){return Ql[t]}let Nd=Ql.length;function UP(t){t<132||(Ql[t]=Nd,Nd=t)}function Ho(t){const e=_n(t);return UP(t),e}let Yo=0,wd=null;function If(){return(wd===null||wd.byteLength===0)&&(wd=new Uint8Array(ct.memory.buffer)),wd}const Zg=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},GP=typeof Zg.encodeInto=="function"?function(t,e){return Zg.encodeInto(t,e)}:function(t,e){const n=Zg.encode(t);return e.set(n),{read:t.length,written:n.length}};function Fa(t,e,n){if(n===void 0){const l=Zg.encode(t),m=e(l.length,1)>>>0;return If().subarray(m,m+l.length).set(l),Yo=l.length,m}let r=t.length,i=e(r,1)>>>0;const a=If();let c=0;for(;c127)break;a[i+c]=l}if(c!==r){c!==0&&(t=t.slice(c)),i=n(i,r,r=c+t.length*3,1)>>>0;const l=If().subarray(i+c,i+r),m=GP(t,l);c+=m.written}return Yo=c,i}function vf(t){return t==null}let Sd=null;function $t(){return(Sd===null||Sd.byteLength===0)&&(Sd=new Int32Array(ct.memory.buffer)),Sd}let Ed=null;function LE(){return(Ed===null||Ed.byteLength===0)&&(Ed=new Float64Array(ct.memory.buffer)),Ed}function lr(t){Nd===Ql.length&&Ql.push(Ql.length+1);const e=Nd;return Nd=Ql[e],Ql[e]=t,e}const PE=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&PE.decode();function zs(t,e){return t=t>>>0,PE.decode(If().subarray(t,t+e))}let Id=null;function jP(){return(Id===null||Id.byteLength===0)&&(Id=new BigInt64Array(ct.memory.buffer)),Id}function uv(t){const e=typeof t;if(e=="number"||e=="boolean"||t==null)return`${t}`;if(e=="string")return`"${t}"`;if(e=="symbol"){const i=t.description;return i==null?"Symbol":`Symbol(${i})`}if(e=="function"){const i=t.name;return typeof i=="string"&&i.length>0?`Function(${i})`:"Function"}if(Array.isArray(t)){const i=t.length;let a="[";i>0&&(a+=uv(t[0]));for(let c=1;c1)r=n[1];else return toString.call(t);if(r=="Object")try{return"Object("+JSON.stringify(t)+")"}catch{return"Object"}return t instanceof Error?`${t.name}: ${t.message} +${t.stack}`:r}function qP(t,e){const n=e(t.length*1,1)>>>0;return If().set(t,n/1),Yo=t.length,n}function $P(t,e){return t=t>>>0,LE().subarray(t/8,t/8+e)}function WP(t,e){return t=t>>>0,If().subarray(t/1,t/1+e)}function Uc(t,e){try{return t.apply(this,e)}catch(n){ct.__wbindgen_exn_store(lr(n))}}class ME{__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,e}free(){const e=this.__destroy_into_raw();ct.__wbg_ltn_free(e)}constructor(e,n){try{const m=ct.__wbindgen_add_to_stack_pointer(-16),b=qP(e,ct.__wbindgen_malloc),S=Yo;var r=vf(n)?0:Fa(n,ct.__wbindgen_malloc,ct.__wbindgen_realloc),i=Yo;ct.ltn_new(m,b,S,r,i);var a=$t()[m/4+0],c=$t()[m/4+1],l=$t()[m/4+2];if(l)throw Ho(c);return this.__wbg_ptr=a>>>0,this}finally{ct.__wbindgen_add_to_stack_pointer(16)}}getInvertedBoundary(){let e,n;try{const b=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_getInvertedBoundary(b,this.__wbg_ptr);var r=$t()[b/4+0],i=$t()[b/4+1],a=$t()[b/4+2],c=$t()[b/4+3],l=r,m=i;if(c)throw l=0,m=0,Ho(a);return e=l,n=m,zs(l,m)}finally{ct.__wbindgen_add_to_stack_pointer(16),ct.__wbindgen_free(e,n,1)}}getBounds(){try{const i=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_getBounds(i,this.__wbg_ptr);var e=$t()[i/4+0],n=$t()[i/4+1],r=$P(e,n).slice();return ct.__wbindgen_free(e,n*8,8),r}finally{ct.__wbindgen_add_to_stack_pointer(16)}}toRouteSnapper(){try{const i=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_toRouteSnapper(i,this.__wbg_ptr);var e=$t()[i/4+0],n=$t()[i/4+1],r=WP(e,n).slice();return ct.__wbindgen_free(e,n*1,1),r}finally{ct.__wbindgen_add_to_stack_pointer(16)}}toRouteSnapperGj(){let e,n;try{const b=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_toRouteSnapperGj(b,this.__wbg_ptr);var r=$t()[b/4+0],i=$t()[b/4+1],a=$t()[b/4+2],c=$t()[b/4+3],l=r,m=i;if(c)throw l=0,m=0,Ho(a);return e=l,n=m,zs(l,m)}finally{ct.__wbindgen_add_to_stack_pointer(16),ct.__wbindgen_free(e,n,1)}}renderModalFilters(){let e,n;try{const b=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_renderModalFilters(b,this.__wbg_ptr);var r=$t()[b/4+0],i=$t()[b/4+1],a=$t()[b/4+2],c=$t()[b/4+3],l=r,m=i;if(c)throw l=0,m=0,Ho(a);return e=l,n=m,zs(l,m)}finally{ct.__wbindgen_add_to_stack_pointer(16),ct.__wbindgen_free(e,n,1)}}renderNeighbourhood(){let e,n;try{const b=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_renderNeighbourhood(b,this.__wbg_ptr);var r=$t()[b/4+0],i=$t()[b/4+1],a=$t()[b/4+2],c=$t()[b/4+3],l=r,m=i;if(c)throw l=0,m=0,Ho(a);return e=l,n=m,zs(l,m)}finally{ct.__wbindgen_add_to_stack_pointer(16),ct.__wbindgen_free(e,n,1)}}setNeighbourhoodBoundary(e,n){try{const a=ct.__wbindgen_add_to_stack_pointer(-16),c=Fa(e,ct.__wbindgen_malloc,ct.__wbindgen_realloc),l=Yo;ct.ltn_setNeighbourhoodBoundary(a,this.__wbg_ptr,c,l,lr(n));var r=$t()[a/4+0],i=$t()[a/4+1];if(i)throw Ho(r)}finally{ct.__wbindgen_add_to_stack_pointer(16)}}deleteNeighbourhoodBoundary(e){const n=Fa(e,ct.__wbindgen_malloc,ct.__wbindgen_realloc),r=Yo;ct.ltn_deleteNeighbourhoodBoundary(this.__wbg_ptr,n,r)}renameNeighbourhoodBoundary(e,n){const r=Fa(e,ct.__wbindgen_malloc,ct.__wbindgen_realloc),i=Yo,a=Fa(n,ct.__wbindgen_malloc,ct.__wbindgen_realloc),c=Yo;ct.ltn_renameNeighbourhoodBoundary(this.__wbg_ptr,r,i,a,c)}setCurrentNeighbourhood(e){try{const i=ct.__wbindgen_add_to_stack_pointer(-16),a=Fa(e,ct.__wbindgen_malloc,ct.__wbindgen_realloc),c=Yo;ct.ltn_setCurrentNeighbourhood(i,this.__wbg_ptr,a,c);var n=$t()[i/4+0],r=$t()[i/4+1];if(r)throw Ho(n)}finally{ct.__wbindgen_add_to_stack_pointer(16)}}addModalFilter(e,n){try{const a=ct.__wbindgen_add_to_stack_pointer(-16),c=Fa(n,ct.__wbindgen_malloc,ct.__wbindgen_realloc),l=Yo;ct.ltn_addModalFilter(a,this.__wbg_ptr,lr(e),c,l);var r=$t()[a/4+0],i=$t()[a/4+1];if(i)throw Ho(r)}finally{ct.__wbindgen_add_to_stack_pointer(16)}}addManyModalFilters(e,n){try{const a=ct.__wbindgen_add_to_stack_pointer(-16),c=Fa(n,ct.__wbindgen_malloc,ct.__wbindgen_realloc),l=Yo;ct.ltn_addManyModalFilters(a,this.__wbg_ptr,lr(e),c,l);var r=$t()[a/4+0],i=$t()[a/4+1];if(i)throw Ho(r)}finally{ct.__wbindgen_add_to_stack_pointer(16)}}deleteModalFilter(e){ct.ltn_deleteModalFilter(this.__wbg_ptr,e)}toggleDirection(e){ct.ltn_toggleDirection(this.__wbg_ptr,e)}undo(){ct.ltn_undo(this.__wbg_ptr)}redo(){ct.ltn_redo(this.__wbg_ptr)}getShortcutsCrossingRoad(e){let n,r;try{const S=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_getShortcutsCrossingRoad(S,this.__wbg_ptr,e);var i=$t()[S/4+0],a=$t()[S/4+1],c=$t()[S/4+2],l=$t()[S/4+3],m=i,b=a;if(l)throw m=0,b=0,Ho(c);return n=m,r=b,zs(m,b)}finally{ct.__wbindgen_add_to_stack_pointer(16),ct.__wbindgen_free(n,r,1)}}getAllShortcuts(){let e,n;try{const b=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_getAllShortcuts(b,this.__wbg_ptr);var r=$t()[b/4+0],i=$t()[b/4+1],a=$t()[b/4+2],c=$t()[b/4+3],l=r,m=i;if(c)throw l=0,m=0,Ho(a);return e=l,n=m,zs(l,m)}finally{ct.__wbindgen_add_to_stack_pointer(16),ct.__wbindgen_free(e,n,1)}}toSavefile(){let e,n;try{const b=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_toSavefile(b,this.__wbg_ptr);var r=$t()[b/4+0],i=$t()[b/4+1],a=$t()[b/4+2],c=$t()[b/4+3],l=r,m=i;if(c)throw l=0,m=0,Ho(a);return e=l,n=m,zs(l,m)}finally{ct.__wbindgen_add_to_stack_pointer(16),ct.__wbindgen_free(e,n,1)}}loadSavefile(e){try{const i=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_loadSavefile(i,this.__wbg_ptr,lr(e));var n=$t()[i/4+0],r=$t()[i/4+1];if(r)throw Ho(n)}finally{ct.__wbindgen_add_to_stack_pointer(16)}}compareRoute(e,n,r,i,a){let c,l;try{const D=ct.__wbindgen_add_to_stack_pointer(-16);ct.ltn_compareRoute(D,this.__wbg_ptr,e,n,r,i,a);var m=$t()[D/4+0],b=$t()[D/4+1],S=$t()[D/4+2],E=$t()[D/4+3],T=m,A=b;if(E)throw T=0,A=0,Ho(S);return c=T,l=A,zs(T,A)}finally{ct.__wbindgen_add_to_stack_pointer(16),ct.__wbindgen_free(c,l,1)}}}async function ZP(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(r){if(t.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}const n=await t.arrayBuffer();return await WebAssembly.instantiate(n,e)}else{const n=await WebAssembly.instantiate(t,e);return n instanceof WebAssembly.Instance?{instance:n,module:t}:n}}function HP(){const t={};return t.wbg={},t.wbg.__wbindgen_object_drop_ref=function(e){Ho(e)},t.wbg.__wbindgen_string_get=function(e,n){const r=_n(n),i=typeof r=="string"?r:void 0;var a=vf(i)?0:Fa(i,ct.__wbindgen_malloc,ct.__wbindgen_realloc),c=Yo;$t()[e/4+1]=c,$t()[e/4+0]=a},t.wbg.__wbindgen_boolean_get=function(e){const n=_n(e);return typeof n=="boolean"?n?1:0:2},t.wbg.__wbindgen_is_bigint=function(e){return typeof _n(e)=="bigint"},t.wbg.__wbindgen_number_get=function(e,n){const r=_n(n),i=typeof r=="number"?r:void 0;LE()[e/8+1]=vf(i)?0:i,$t()[e/4+0]=!vf(i)},t.wbg.__wbindgen_is_object=function(e){const n=_n(e);return typeof n=="object"&&n!==null},t.wbg.__wbindgen_in=function(e,n){return _n(e)in _n(n)},t.wbg.__wbindgen_bigint_from_i64=function(e){return lr(e)},t.wbg.__wbindgen_jsval_eq=function(e,n){return _n(e)===_n(n)},t.wbg.__wbindgen_bigint_from_u64=function(e){const n=BigInt.asUintN(64,e);return lr(n)},t.wbg.__wbindgen_error_new=function(e,n){const r=new Error(zs(e,n));return lr(r)},t.wbg.__wbindgen_is_undefined=function(e){return _n(e)===void 0},t.wbg.__wbindgen_string_new=function(e,n){const r=zs(e,n);return lr(r)},t.wbg.__wbindgen_jsval_loose_eq=function(e,n){return _n(e)==_n(n)},t.wbg.__wbg_getwithrefkey_3b3c46ba20582127=function(e,n){const r=_n(e)[_n(n)];return lr(r)},t.wbg.__wbindgen_object_clone_ref=function(e){const n=_n(e);return lr(n)},t.wbg.__wbg_debug_34c9290896ec9856=function(e){console.debug(_n(e))},t.wbg.__wbg_error_e60eff06f24ab7a4=function(e){console.error(_n(e))},t.wbg.__wbg_info_d7d58472d0bab115=function(e){console.info(_n(e))},t.wbg.__wbg_log_a4530b4fe289336f=function(e){console.log(_n(e))},t.wbg.__wbg_warn_f260f49434e45e62=function(e){console.warn(_n(e))},t.wbg.__wbg_new_abda76e883ba8a5f=function(){const e=new Error;return lr(e)},t.wbg.__wbg_stack_658279fe44541cf6=function(e,n){const r=_n(n).stack,i=Fa(r,ct.__wbindgen_malloc,ct.__wbindgen_realloc),a=Yo;$t()[e/4+1]=a,$t()[e/4+0]=i},t.wbg.__wbg_error_f851667af71bcfc6=function(e,n){let r,i;try{r=e,i=n,console.error(zs(e,n))}finally{ct.__wbindgen_free(r,i,1)}},t.wbg.__wbg_performance_3f3012faa4463882=function(e){const n=_n(e).performance;return lr(n)},t.wbg.__wbg_now_2fd65358804c9485=function(e){return _n(e).now()},t.wbg.__wbg_get_f01601b5a68d10e3=function(e,n){const r=_n(e)[n>>>0];return lr(r)},t.wbg.__wbg_length_1009b1af0c481d7b=function(e){return _n(e).length},t.wbg.__wbindgen_is_function=function(e){return typeof _n(e)=="function"},t.wbg.__wbg_newnoargs_c62ea9419c21fbac=function(e,n){const r=new Function(zs(e,n));return lr(r)},t.wbg.__wbg_next_9b877f231f476d01=function(e){const n=_n(e).next;return lr(n)},t.wbg.__wbg_next_6529ee0cca8d57ed=function(){return Uc(function(e){const n=_n(e).next();return lr(n)},arguments)},t.wbg.__wbg_done_5fe336b092d60cf2=function(e){return _n(e).done},t.wbg.__wbg_value_0c248a78fdc8e19f=function(e){const n=_n(e).value;return lr(n)},t.wbg.__wbg_iterator_db7ca081358d4fb2=function(){return lr(Symbol.iterator)},t.wbg.__wbg_get_7b48513de5dc5ea4=function(){return Uc(function(e,n){const r=Reflect.get(_n(e),_n(n));return lr(r)},arguments)},t.wbg.__wbg_call_90c26b09837aba1c=function(){return Uc(function(e,n){const r=_n(e).call(_n(n));return lr(r)},arguments)},t.wbg.__wbg_self_f0e34d89f33b99fd=function(){return Uc(function(){const e=self.self;return lr(e)},arguments)},t.wbg.__wbg_window_d3b084224f4774d7=function(){return Uc(function(){const e=window.window;return lr(e)},arguments)},t.wbg.__wbg_globalThis_9caa27ff917c6860=function(){return Uc(function(){const e=globalThis.globalThis;return lr(e)},arguments)},t.wbg.__wbg_global_35dfdd59a4da3e74=function(){return Uc(function(){const e=global.global;return lr(e)},arguments)},t.wbg.__wbg_isArray_74fb723e24f76012=function(e){return Array.isArray(_n(e))},t.wbg.__wbg_instanceof_ArrayBuffer_e7d53d51371448e2=function(e){let n;try{n=_n(e)instanceof ArrayBuffer}catch{n=!1}return n},t.wbg.__wbg_isSafeInteger_f93fde0dca9820f8=function(e){return Number.isSafeInteger(_n(e))},t.wbg.__wbg_entries_9e2e2aa45aa5094a=function(e){const n=Object.entries(_n(e));return lr(n)},t.wbg.__wbg_buffer_a448f833075b71ba=function(e){const n=_n(e).buffer;return lr(n)},t.wbg.__wbg_new_8f67e318f15d7254=function(e){const n=new Uint8Array(_n(e));return lr(n)},t.wbg.__wbg_set_2357bf09366ee480=function(e,n,r){_n(e).set(_n(n),r>>>0)},t.wbg.__wbg_length_1d25fa9e4ac21ce7=function(e){return _n(e).length},t.wbg.__wbg_instanceof_Uint8Array_bced6f43aed8c1aa=function(e){let n;try{n=_n(e)instanceof Uint8Array}catch{n=!1}return n},t.wbg.__wbindgen_bigint_get_as_i64=function(e,n){const r=_n(n),i=typeof r=="bigint"?r:void 0;jP()[e/8+1]=vf(i)?BigInt(0):i,$t()[e/4+0]=!vf(i)},t.wbg.__wbindgen_debug_string=function(e,n){const r=uv(_n(n)),i=Fa(r,ct.__wbindgen_malloc,ct.__wbindgen_realloc),a=Yo;$t()[e/4+1]=a,$t()[e/4+0]=i},t.wbg.__wbindgen_throw=function(e,n){throw new Error(zs(e,n))},t.wbg.__wbindgen_memory=function(){const e=ct.memory;return lr(e)},t}function XP(t,e){return ct=t.exports,AE.__wbindgen_wasm_module=e,Id=null,Ed=null,Sd=null,wd=null,ct}async function AE(t){if(ct!==void 0)return ct;typeof t>"u"&&(t="/ltn/assets/backend_bg.wasm");const e=HP();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:n,module:r}=await ZP(await t,e);return XP(n,r)}var dm=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function l1(t){return t&&t.__esModule&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t}function J_(t){if(t.__esModule)return t;var e=t.default;if(typeof e=="function"){var n=function r(){return this instanceof r?Reflect.construct(e,arguments,this.constructor):e.apply(this,arguments)};n.prototype=e.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(t).forEach(function(r){var i=Object.getOwnPropertyDescriptor(t,r);Object.defineProperty(n,r,i.get?i:{enumerable:!0,get:function(){return t[r]}})}),n}var kE={exports:{}};/** + * MapLibre GL JS + * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v4.1.3/LICENSE.txt + */(function(t,e){(function(n,r){t.exports=r()})(dm,function(){var n={},r={};function i(c,l,m){if(r[c]=m,c==="index"){var b="var sharedModule = {}; ("+r.shared+")(sharedModule); ("+r.worker+")(sharedModule);",S={};return r.shared(S),r.index(n,S),typeof window<"u"&&n.setWorkerUrl(window.URL.createObjectURL(new Blob([b],{type:"text/javascript"}))),n}}i("shared",["exports"],function(c){function l(u,o,h,p){return new(h||(h=Promise))(function(_,x){function w(k){try{P(p.next(k))}catch(N){x(N)}}function I(k){try{P(p.throw(k))}catch(N){x(N)}}function P(k){var N;k.done?_(k.value):(N=k.value,N instanceof h?N:new h(function(B){B(N)})).then(w,I)}P((p=p.apply(u,o||[])).next())})}function m(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}typeof SuppressedError=="function"&&SuppressedError;var b=S;function S(u,o){this.x=u,this.y=o}S.prototype={clone:function(){return new S(this.x,this.y)},add:function(u){return this.clone()._add(u)},sub:function(u){return this.clone()._sub(u)},multByPoint:function(u){return this.clone()._multByPoint(u)},divByPoint:function(u){return this.clone()._divByPoint(u)},mult:function(u){return this.clone()._mult(u)},div:function(u){return this.clone()._div(u)},rotate:function(u){return this.clone()._rotate(u)},rotateAround:function(u,o){return this.clone()._rotateAround(u,o)},matMult:function(u){return this.clone()._matMult(u)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(u){return this.x===u.x&&this.y===u.y},dist:function(u){return Math.sqrt(this.distSqr(u))},distSqr:function(u){var o=u.x-this.x,h=u.y-this.y;return o*o+h*h},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(u){return Math.atan2(this.y-u.y,this.x-u.x)},angleWith:function(u){return this.angleWithSep(u.x,u.y)},angleWithSep:function(u,o){return Math.atan2(this.x*o-this.y*u,this.x*u+this.y*o)},_matMult:function(u){var o=u[2]*this.x+u[3]*this.y;return this.x=u[0]*this.x+u[1]*this.y,this.y=o,this},_add:function(u){return this.x+=u.x,this.y+=u.y,this},_sub:function(u){return this.x-=u.x,this.y-=u.y,this},_mult:function(u){return this.x*=u,this.y*=u,this},_div:function(u){return this.x/=u,this.y/=u,this},_multByPoint:function(u){return this.x*=u.x,this.y*=u.y,this},_divByPoint:function(u){return this.x/=u.x,this.y/=u.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var u=this.y;return this.y=this.x,this.x=-u,this},_rotate:function(u){var o=Math.cos(u),h=Math.sin(u),p=h*this.x+o*this.y;return this.x=o*this.x-h*this.y,this.y=p,this},_rotateAround:function(u,o){var h=Math.cos(u),p=Math.sin(u),_=o.y+p*(this.x-o.x)+h*(this.y-o.y);return this.x=o.x+h*(this.x-o.x)-p*(this.y-o.y),this.y=_,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},S.convert=function(u){return u instanceof S?u:Array.isArray(u)?new S(u[0],u[1]):u};var E=m(b),T=A;function A(u,o,h,p){this.cx=3*u,this.bx=3*(h-u)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*o,this.by=3*(p-o)-this.cy,this.ay=1-this.cy-this.by,this.p1x=u,this.p1y=o,this.p2x=h,this.p2y=p}A.prototype={sampleCurveX:function(u){return((this.ax*u+this.bx)*u+this.cx)*u},sampleCurveY:function(u){return((this.ay*u+this.by)*u+this.cy)*u},sampleCurveDerivativeX:function(u){return(3*this.ax*u+2*this.bx)*u+this.cx},solveCurveX:function(u,o){if(o===void 0&&(o=1e-6),u<0)return 0;if(u>1)return 1;for(var h=u,p=0;p<8;p++){var _=this.sampleCurveX(h)-u;if(Math.abs(_)_?w=h:I=h,h=.5*(I-w)+w;return h},solve:function(u,o){return this.sampleCurveY(this.solveCurveX(u,o))}};var D=m(T);let O,z;function G(){return O==null&&(O=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),O}function F(){if(z==null&&(z=!1,G())){const o=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(o){for(let p=0;p<5*5;p++){const _=4*p;o.fillStyle=`rgb(${_},${_+1},${_+2})`,o.fillRect(p%5,Math.floor(p/5),1,1)}const h=o.getImageData(0,0,5,5).data;for(let p=0;p<5*5*4;p++)if(p%4!=3&&h[p]!==p){z=!0;break}}}return z||!1}function j(u,o,h,p){const _=new D(u,o,h,p);return function(x){return _.solve(x)}}const Z=j(.25,.1,.25,1);function J(u,o,h){return Math.min(h,Math.max(o,u))}function he(u,o,h){const p=h-o,_=((u-o)%p+p)%p+o;return _===o?h:_}function re(u,...o){for(const h of o)for(const p in h)u[p]=h[p];return u}let ye=1;function ae(u,o,h){const p={};for(const _ in u)p[_]=o.call(h||this,u[_],_,u);return p}function Ae(u,o,h){const p={};for(const _ in u)o.call(h||this,u[_],_,u)&&(p[_]=u[_]);return p}function me(u){return Array.isArray(u)?u.map(me):typeof u=="object"&&u?ae(u,me):u}const Ee={};function Qe(u){Ee[u]||(typeof console<"u"&&console.warn(u),Ee[u]=!0)}function Le(u,o,h){return(h.y-u.y)*(o.x-u.x)>(o.y-u.y)*(h.x-u.x)}function lt(u){let o=0;for(let h,p,_=0,x=u.length,w=x-1;_"u")throw new Error("VideoFrame not supported");const x=new VideoFrame(u,{timestamp:0});try{const w=x==null?void 0:x.format;if(!w||!w.startsWith("BGR")&&!w.startsWith("RGB"))throw new Error(`Unrecognized format ${w}`);const I=w.startsWith("BGR"),P=new Uint8ClampedArray(p*_*4);if(yield x.copyTo(P,function(k,N,B,$,H){const Y=4*Math.max(-N,0),te=(Math.max(0,B)-B)*$*4+Y,le=4*$,ge=Math.max(0,N),De=Math.max(0,B);return{rect:{x:ge,y:De,width:Math.min(k.width,N+$)-ge,height:Math.min(k.height,B+H)-De},layout:[{offset:te,stride:le}]}}(u,o,h,p,_)),I)for(let k=0;kKe(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,rt=function(u,o){if(/:\/\//.test(u.url)&&!/^https?:|^file:/.test(u.url)){const p=mn(u.url);if(p)return p(u,o);if(Ke(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:u,targetMapId:or},o)}if(!(/^file:/.test(h=u.url)||/^file:/.test(Yn())&&!/^\w+:/.test(h))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return function(p,_){return l(this,void 0,void 0,function*(){const x=new Request(p.url,{method:p.method||"GET",body:p.body,credentials:p.credentials,headers:p.headers,cache:p.cache,referrer:Yn(),signal:_.signal});p.type==="json"&&x.headers.set("Accept","application/json");const w=yield fetch(x);if(!w.ok){const k=yield w.blob();throw new sr(w.status,w.statusText,p.url,k)}let I;I=p.type==="arrayBuffer"||p.type==="image"?w.arrayBuffer():p.type==="json"?w.json():w.text();const P=yield I;if(_.signal.aborted)throw Dn();return{data:P,cacheControl:w.headers.get("Cache-Control"),expires:w.headers.get("Expires")}})}(u,o);if(Ke(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:u,mustQueue:!0,targetMapId:or},o)}var h;return function(p,_){return new Promise((x,w)=>{const I=new XMLHttpRequest;I.open(p.method||"GET",p.url,!0),p.type!=="arrayBuffer"&&p.type!=="image"||(I.responseType="arraybuffer");for(const P in p.headers)I.setRequestHeader(P,p.headers[P]);p.type==="json"&&(I.responseType="text",I.setRequestHeader("Accept","application/json")),I.withCredentials=p.credentials==="include",I.onerror=()=>{w(new Error(I.statusText))},I.onload=()=>{if(!_.signal.aborted)if((I.status>=200&&I.status<300||I.status===0)&&I.response!==null){let P=I.response;if(p.type==="json")try{P=JSON.parse(I.response)}catch(k){return void w(k)}x({data:P,cacheControl:I.getResponseHeader("Cache-Control"),expires:I.getResponseHeader("Expires")})}else{const P=new Blob([I.response],{type:I.getResponseHeader("Content-Type")});w(new sr(I.status,I.statusText,p.url,P))}},_.signal.addEventListener("abort",()=>{I.abort(),w(Dn())}),I.send(p.body)})}(u,o)};function Jt(u){if(!u||u.indexOf("://")<=0||u.indexOf("data:image/")===0||u.indexOf("blob:")===0)return!0;const o=new URL(u),h=window.location;return o.protocol===h.protocol&&o.host===h.host}function Xt(u,o,h){h[u]&&h[u].indexOf(o)!==-1||(h[u]=h[u]||[],h[u].push(o))}function Ze(u,o,h){if(h&&h[u]){const p=h[u].indexOf(o);p!==-1&&h[u].splice(p,1)}}class Ne{constructor(o,h={}){re(this,h),this.type=o}}class It extends Ne{constructor(o,h={}){super("error",re({error:o},h))}}class Sr{on(o,h){return this._listeners=this._listeners||{},Xt(o,h,this._listeners),this}off(o,h){return Ze(o,h,this._listeners),Ze(o,h,this._oneTimeListeners),this}once(o,h){return h?(this._oneTimeListeners=this._oneTimeListeners||{},Xt(o,h,this._oneTimeListeners),this):new Promise(p=>this.once(o,p))}fire(o,h){typeof o=="string"&&(o=new Ne(o,h||{}));const p=o.type;if(this.listens(p)){o.target=this;const _=this._listeners&&this._listeners[p]?this._listeners[p].slice():[];for(const I of _)I.call(this,o);const x=this._oneTimeListeners&&this._oneTimeListeners[p]?this._oneTimeListeners[p].slice():[];for(const I of x)Ze(p,I,this._oneTimeListeners),I.call(this,o);const w=this._eventedParent;w&&(re(o,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),w.fire(o))}else o instanceof It&&console.error(o.error);return this}listens(o){return this._listeners&&this._listeners[o]&&this._listeners[o].length>0||this._oneTimeListeners&&this._oneTimeListeners[o]&&this._oneTimeListeners[o].length>0||this._eventedParent&&this._eventedParent.listens(o)}setEventedParent(o,h){return this._eventedParent=o,this._eventedParentData=h,this}}var Be={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sky:{type:"sky"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",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-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-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}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}};const wn=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function pi(u,o){const h={};for(const p in u)p!=="ref"&&(h[p]=u[p]);return wn.forEach(p=>{p in o&&(h[p]=o[p])}),h}function gn(u,o){if(Array.isArray(u)){if(!Array.isArray(o)||u.length!==o.length)return!1;for(let h=0;h`:u.itemType.kind==="value"?"array":`array<${o}>`}return u.kind}const Ce=[ni,ft,un,an,Ur,Wr,ls,K(sn),ue,q,W];function Q(u,o){if(o.kind==="error")return null;if(u.kind==="array"){if(o.kind==="array"&&(o.N===0&&o.itemType.kind==="value"||!Q(u.itemType,o.itemType))&&(typeof u.N!="number"||u.N===o.N))return null}else{if(u.kind===o.kind)return null;if(u.kind==="value"){for(const h of Ce)if(!Q(h,o))return null}}return`Expected ${ne(u)} but found ${ne(o)} instead.`}function Te(u,o){return o.some(h=>h.kind===u.kind)}function _e(u,o){return o.some(h=>h==="null"?u===null:h==="array"?Array.isArray(u):h==="object"?u&&!Array.isArray(u)&&typeof u=="object":h===typeof u)}function ke(u,o){return u.kind==="array"&&o.kind==="array"?u.itemType.kind===o.itemType.kind&&typeof u.N=="number":u.kind===o.kind}const Ve=.96422,He=.82521,Ye=4/29,At=6/29,Nt=3*At*At,en=At*At*At,rn=Math.PI/180,Cn=180/Math.PI;function Kn(u){return(u%=360)<0&&(u+=360),u}function _r([u,o,h,p]){let _,x;const w=pn((.2225045*(u=ri(u))+.7168786*(o=ri(o))+.0606169*(h=ri(h)))/1);u===o&&o===h?_=x=w:(_=pn((.4360747*u+.3850649*o+.1430804*h)/Ve),x=pn((.0139322*u+.0971045*o+.7141733*h)/He));const I=116*w-16;return[I<0?0:I,500*(_-w),200*(w-x),p]}function ri(u){return u<=.04045?u/12.92:Math.pow((u+.055)/1.055,2.4)}function pn(u){return u>en?Math.pow(u,1/3):u/Nt+Ye}function Dr([u,o,h,p]){let _=(u+16)/116,x=isNaN(o)?_:_+o/500,w=isNaN(h)?_:_-h/200;return _=1*ao(_),x=Ve*ao(x),w=He*ao(w),[di(3.1338561*x-1.6168667*_-.4906146*w),di(-.9787684*x+1.9161415*_+.033454*w),di(.0719453*x-.2289914*_+1.4052427*w),p]}function di(u){return(u=u<=.00304?12.92*u:1.055*Math.pow(u,1/2.4)-.055)<0?0:u>1?1:u}function ao(u){return u>At?u*u*u:Nt*(u-Ye)}function xo(u){return parseInt(u.padEnd(2,u),16)/255}function Ci(u,o){return Ks(o?u/100:u,0,1)}function Ks(u,o,h){return Math.min(Math.max(o,u),h)}function Cm(u){return!u.some(Number.isNaN)}const Iy={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};class Wn{constructor(o,h,p,_=1,x=!0){this.r=o,this.g=h,this.b=p,this.a=_,x||(this.r*=_,this.g*=_,this.b*=_,_||this.overwriteGetter("rgb",[o,h,p,_]))}static parse(o){if(o instanceof Wn)return o;if(typeof o!="string")return;const h=function(p){if((p=p.toLowerCase().trim())==="transparent")return[0,0,0,0];const _=Iy[p];if(_){const[w,I,P]=_;return[w/255,I/255,P/255,1]}if(p.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(p)){const w=p.length<6?1:2;let I=1;return[xo(p.slice(I,I+=w)),xo(p.slice(I,I+=w)),xo(p.slice(I,I+=w)),xo(p.slice(I,I+w)||"ff")]}if(p.startsWith("rgb")){const w=p.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(w){const[I,P,k,N,B,$,H,Y,te,le,ge,De]=w,we=[N||" ",H||" ",le].join("");if(we===" "||we===" /"||we===",,"||we===",,,"){const Pe=[k,$,te].join(""),Je=Pe==="%%%"?100:Pe===""?255:0;if(Je){const et=[Ks(+P/Je,0,1),Ks(+B/Je,0,1),Ks(+Y/Je,0,1),ge?Ci(+ge,De):1];if(Cm(et))return et}}return}}const x=p.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(x){const[w,I,P,k,N,B,$,H,Y]=x,te=[P||" ",N||" ",$].join("");if(te===" "||te===" /"||te===",,"||te===",,,"){const le=[+I,Ks(+k,0,100),Ks(+B,0,100),H?Ci(+H,Y):1];if(Cm(le))return function([ge,De,we,Pe]){function Je(et){const xt=(et+ge/30)%12,Pt=De*Math.min(we,1-we);return we-Pt*Math.max(-1,Math.min(xt-3,9-xt,1))}return ge=Kn(ge),De/=100,we/=100,[Je(0),Je(8),Je(4),Pe]}(le)}}}(o);return h?new Wn(...h,!1):void 0}get rgb(){const{r:o,g:h,b:p,a:_}=this,x=_||1/0;return this.overwriteGetter("rgb",[o/x,h/x,p/x,_])}get hcl(){return this.overwriteGetter("hcl",function(o){const[h,p,_,x]=_r(o),w=Math.sqrt(p*p+_*_);return[Math.round(1e4*w)?Kn(Math.atan2(_,p)*Cn):NaN,w,h,x]}(this.rgb))}get lab(){return this.overwriteGetter("lab",_r(this.rgb))}overwriteGetter(o,h){return Object.defineProperty(this,o,{value:h}),h}toString(){const[o,h,p,_]=this.rgb;return`rgba(${[o,h,p].map(x=>Math.round(255*x)).join(",")},${_})`}}Wn.black=new Wn(0,0,0,1),Wn.white=new Wn(1,1,1,1),Wn.transparent=new Wn(0,0,0,0),Wn.red=new Wn(1,0,0,1);class dp{constructor(o,h,p){this.sensitivity=o?h?"variant":"case":h?"accent":"base",this.locale=p,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(o,h){return this.collator.compare(o,h)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class mp{constructor(o,h,p,_,x){this.text=o,this.image=h,this.scale=p,this.fontStack=_,this.textColor=x}}class Bo{constructor(o){this.sections=o}static fromString(o){return new Bo([new mp(o,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(o=>o.text.length!==0||o.image&&o.image.name.length!==0)}static factory(o){return o instanceof Bo?o:Bo.fromString(o)}toString(){return this.sections.length===0?"":this.sections.map(o=>o.text).join("")}}class wo{constructor(o){this.values=o.slice()}static parse(o){if(o instanceof wo)return o;if(typeof o=="number")return new wo([o,o,o,o]);if(Array.isArray(o)&&!(o.length<1||o.length>4)){for(const h of o)if(typeof h!="number")return;switch(o.length){case 1:o=[o[0],o[0],o[0],o[0]];break;case 2:o=[o[0],o[1],o[0],o[1]];break;case 3:o=[o[0],o[1],o[2],o[1]]}return new wo(o)}}toString(){return JSON.stringify(this.values)}}const mc=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class us{constructor(o){this.values=o.slice()}static parse(o){if(o instanceof us)return o;if(Array.isArray(o)&&!(o.length<1)&&o.length%2==0){for(let h=0;h=0&&u<=255&&typeof o=="number"&&o>=0&&o<=255&&typeof h=="number"&&h>=0&&h<=255?p===void 0||typeof p=="number"&&p>=0&&p<=1?null:`Invalid rgba value [${[u,o,h,p].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof p=="number"?[u,o,h,p]:[u,o,h]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function dh(u){if(u===null||typeof u=="string"||typeof u=="boolean"||typeof u=="number"||u instanceof Wn||u instanceof dp||u instanceof Bo||u instanceof wo||u instanceof us||u instanceof cs)return!0;if(Array.isArray(u)){for(const o of u)if(!dh(o))return!1;return!0}if(typeof u=="object"){for(const o in u)if(!dh(u[o]))return!1;return!0}return!1}function ii(u){if(u===null)return ni;if(typeof u=="string")return un;if(typeof u=="boolean")return an;if(typeof u=="number")return ft;if(u instanceof Wn)return Ur;if(u instanceof dp)return Ma;if(u instanceof Bo)return Wr;if(u instanceof wo)return ue;if(u instanceof us)return W;if(u instanceof cs)return q;if(Array.isArray(u)){const o=u.length;let h;for(const p of u){const _=ii(p);if(h){if(h===_)continue;h=sn;break}h=_}return K(h||sn,o)}return ls}function gc(u){const o=typeof u;return u===null?"":o==="string"||o==="number"||o==="boolean"?String(u):u instanceof Wn||u instanceof Bo||u instanceof wo||u instanceof us||u instanceof cs?u.toString():JSON.stringify(u)}class nl{constructor(o,h){this.type=o,this.value=h}static parse(o,h){if(o.length!==2)return h.error(`'literal' expression requires exactly one argument, but found ${o.length-1} instead.`);if(!dh(o[1]))return h.error("invalid value");const p=o[1];let _=ii(p);const x=h.expectedType;return _.kind!=="array"||_.N!==0||!x||x.kind!=="array"||typeof x.N=="number"&&x.N!==0||(_=x),new nl(_,p)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class Er{constructor(o){this.name="ExpressionEvaluationError",this.message=o}toJSON(){return this.message}}const mh={string:un,number:ft,boolean:an,object:ls};class Vo{constructor(o,h){this.type=o,this.args=h}static parse(o,h){if(o.length<2)return h.error("Expected at least one argument.");let p,_=1;const x=o[0];if(x==="array"){let I,P;if(o.length>2){const k=o[1];if(typeof k!="string"||!(k in mh)||k==="object")return h.error('The item type argument of "array" must be one of string, number, boolean',1);I=mh[k],_++}else I=sn;if(o.length>3){if(o[2]!==null&&(typeof o[2]!="number"||o[2]<0||o[2]!==Math.floor(o[2])))return h.error('The length argument to "array" must be a positive integer literal',2);P=o[2],_++}p=K(I,P)}else{if(!mh[x])throw new Error(`Types doesn't contain name = ${x}`);p=mh[x]}const w=[];for(;_o.outputDefined())}}const gh={"to-boolean":an,"to-color":Ur,"to-number":ft,"to-string":un};class Js{constructor(o,h){this.type=o,this.args=h}static parse(o,h){if(o.length<2)return h.error("Expected at least one argument.");const p=o[0];if(!gh[p])throw new Error(`Can't parse ${p} as it is not part of the known types`);if((p==="to-boolean"||p==="to-string")&&o.length!==2)return h.error("Expected one argument.");const _=gh[p],x=[];for(let w=1;w4?`Invalid rbga value ${JSON.stringify(h)}: expected an array containing either three or four numeric values.`:_u(h[0],h[1],h[2],h[3]),!p))return new Wn(h[0]/255,h[1]/255,h[2]/255,h[3])}throw new Er(p||`Could not parse color from value '${typeof h=="string"?h:JSON.stringify(h)}'`)}case"padding":{let h;for(const p of this.args){h=p.evaluate(o);const _=wo.parse(h);if(_)return _}throw new Er(`Could not parse padding from value '${typeof h=="string"?h:JSON.stringify(h)}'`)}case"variableAnchorOffsetCollection":{let h;for(const p of this.args){h=p.evaluate(o);const _=us.parse(h);if(_)return _}throw new Er(`Could not parse variableAnchorOffsetCollection from value '${typeof h=="string"?h:JSON.stringify(h)}'`)}case"number":{let h=null;for(const p of this.args){if(h=p.evaluate(o),h===null)return 0;const _=Number(h);if(!isNaN(_))return _}throw new Er(`Could not convert ${JSON.stringify(h)} to number.`)}case"formatted":return Bo.fromString(gc(this.args[0].evaluate(o)));case"resolvedImage":return cs.fromString(gc(this.args[0].evaluate(o)));default:return gc(this.args[0].evaluate(o))}}eachChild(o){this.args.forEach(o)}outputDefined(){return this.args.every(o=>o.outputDefined())}}const _c=["Unknown","Point","LineString","Polygon"];class Zn{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?_c[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(o){let h=this._parseColorCache[o];return h||(h=this._parseColorCache[o]=Wn.parse(o)),h}}class _h{constructor(o,h,p=[],_,x=new Nl,w=[]){this.registry=o,this.path=p,this.key=p.map(I=>`[${I}]`).join(""),this.scope=x,this.errors=w,this.expectedType=_,this._isConstant=h}parse(o,h,p,_,x={}){return h?this.concat(h,p,_)._parse(o,x):this._parse(o,x)}_parse(o,h){function p(_,x,w){return w==="assert"?new Vo(x,[_]):w==="coerce"?new Js(x,[_]):_}if(o!==null&&typeof o!="string"&&typeof o!="boolean"&&typeof o!="number"||(o=["literal",o]),Array.isArray(o)){if(o.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const _=o[0];if(typeof _!="string")return this.error(`Expression name must be a string, but found ${typeof _} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const x=this.registry[_];if(x){let w=x.parse(o,this);if(!w)return null;if(this.expectedType){const I=this.expectedType,P=w.type;if(I.kind!=="string"&&I.kind!=="number"&&I.kind!=="boolean"&&I.kind!=="object"&&I.kind!=="array"||P.kind!=="value")if(I.kind!=="color"&&I.kind!=="formatted"&&I.kind!=="resolvedImage"||P.kind!=="value"&&P.kind!=="string")if(I.kind!=="padding"||P.kind!=="value"&&P.kind!=="number"&&P.kind!=="array")if(I.kind!=="variableAnchorOffsetCollection"||P.kind!=="value"&&P.kind!=="array"){if(this.checkSubtype(I,P))return null}else w=p(w,I,h.typeAnnotation||"coerce");else w=p(w,I,h.typeAnnotation||"coerce");else w=p(w,I,h.typeAnnotation||"coerce");else w=p(w,I,h.typeAnnotation||"assert")}if(!(w instanceof nl)&&w.type.kind!=="resolvedImage"&&this._isConstant(w)){const I=new Zn;try{w=new nl(w.type,w.evaluate(I))}catch(P){return this.error(P.message),null}}return w}return this.error(`Unknown expression "${_}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(o===void 0?"'undefined' value invalid. Use null instead.":typeof o=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof o} instead.`)}concat(o,h,p){const _=typeof o=="number"?this.path.concat(o):this.path,x=p?this.scope.concat(p):this.scope;return new _h(this.registry,this._isConstant,_,h||null,x,this.errors)}error(o,...h){const p=`${this.key}${h.map(_=>`[${_}]`).join("")}`;this.errors.push(new so(p,o))}checkSubtype(o,h){const p=Q(o,h);return p&&this.error(p),p}}class yu{constructor(o,h,p){this.type=Ma,this.locale=p,this.caseSensitive=o,this.diacriticSensitive=h}static parse(o,h){if(o.length!==2)return h.error("Expected one argument.");const p=o[1];if(typeof p!="object"||Array.isArray(p))return h.error("Collator options argument must be an object.");const _=h.parse(p["case-sensitive"]!==void 0&&p["case-sensitive"],1,an);if(!_)return null;const x=h.parse(p["diacritic-sensitive"]!==void 0&&p["diacritic-sensitive"],1,an);if(!x)return null;let w=null;return p.locale&&(w=h.parse(p.locale,1,un),!w)?null:new yu(_,x,w)}evaluate(o){return new dp(this.caseSensitive.evaluate(o),this.diacriticSensitive.evaluate(o),this.locale?this.locale.evaluate(o):null)}eachChild(o){o(this.caseSensitive),o(this.diacriticSensitive),this.locale&&o(this.locale)}outputDefined(){return!1}}const rl=8192;function yh(u,o){u[0]=Math.min(u[0],o[0]),u[1]=Math.min(u[1],o[1]),u[2]=Math.max(u[2],o[0]),u[3]=Math.max(u[3],o[1])}function yc(u,o){return!(u[0]<=o[0]||u[2]>=o[2]||u[1]<=o[1]||u[3]>=o[3])}function Cy(u,o){const h=(180+u[0])/360,p=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u[1]*Math.PI/360)))/360,_=Math.pow(2,o.z);return[Math.round(h*_*rl),Math.round(p*_*rl)]}function Tm(u,o,h){const p=u[0]-o[0],_=u[1]-o[1],x=u[0]-h[0],w=u[1]-h[1];return p*w-x*_==0&&p*x<=0&&_*w<=0}function vh(u,o){let h=!1;for(let w=0,I=o.length;w(p=u)[1]!=(x=P[k+1])[1]>p[1]&&p[0]<(x[0]-_[0])*(p[1]-_[1])/(x[1]-_[1])+_[0]&&(h=!h)}}var p,_,x;return h}function Ty(u,o){for(let h=0;h0&&I<0||w<0&&I>0}function Ly(u,o,h){for(const k of h)for(let N=0;Nh[2]){const _=.5*p;let x=u[0]-h[0]>_?-p:h[0]-u[0]>_?p:0;x===0&&(x=u[0]-h[2]>_?-p:h[2]-u[0]>_?p:0),u[0]+=x}yh(o,u)}function xh(u,o,h,p){const _=Math.pow(2,p.z)*rl,x=[p.x*rl,p.y*rl],w=[];for(const I of u)for(const P of I){const k=[P.x+x[0],P.y+x[1]];km(k,o,h,_),w.push(k)}return w}function Dm(u,o,h,p){const _=Math.pow(2,p.z)*rl,x=[p.x*rl,p.y*rl],w=[];for(const P of u){const k=[];for(const N of P){const B=[N.x+x[0],N.y+x[1]];yh(o,B),k.push(B)}w.push(k)}if(o[2]-o[0]<=_/2){(I=o)[0]=I[1]=1/0,I[2]=I[3]=-1/0;for(const P of w)for(const k of P)km(k,o,h,_)}var I;return w}class Ol{constructor(o,h){this.type=an,this.geojson=o,this.geometries=h}static parse(o,h){if(o.length!==2)return h.error(`'within' expression requires exactly one argument, but found ${o.length-1} instead.`);if(dh(o[1])){const p=o[1];if(p.type==="FeatureCollection"){const _=[];for(const x of p.features){const{type:w,coordinates:I}=x.geometry;w==="Polygon"&&_.push(I),w==="MultiPolygon"&&_.push(...I)}if(_.length)return new Ol(p,{type:"MultiPolygon",coordinates:_})}else if(p.type==="Feature"){const _=p.geometry.type;if(_==="Polygon"||_==="MultiPolygon")return new Ol(p,p.geometry)}else if(p.type==="Polygon"||p.type==="MultiPolygon")return new Ol(p,p)}return h.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(o){if(o.geometry()!=null&&o.canonicalID()!=null){if(o.geometryType()==="Point")return function(h,p){const _=[1/0,1/0,-1/0,-1/0],x=[1/0,1/0,-1/0,-1/0],w=h.canonicalID();if(p.type==="Polygon"){const I=bh(p.coordinates,x,w),P=xh(h.geometry(),_,x,w);if(!yc(_,x))return!1;for(const k of P)if(!vh(k,I))return!1}if(p.type==="MultiPolygon"){const I=Am(p.coordinates,x,w),P=xh(h.geometry(),_,x,w);if(!yc(_,x))return!1;for(const k of P)if(!Ty(k,I))return!1}return!0}(o,this.geometries);if(o.geometryType()==="LineString")return function(h,p){const _=[1/0,1/0,-1/0,-1/0],x=[1/0,1/0,-1/0,-1/0],w=h.canonicalID();if(p.type==="Polygon"){const I=bh(p.coordinates,x,w),P=Dm(h.geometry(),_,x,w);if(!yc(_,x))return!1;for(const k of P)if(!Pm(k,I))return!1}if(p.type==="MultiPolygon"){const I=Am(p.coordinates,x,w),P=Dm(h.geometry(),_,x,w);if(!yc(_,x))return!1;for(const k of P)if(!Mm(k,I))return!1}return!0}(o,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}class wh{constructor(o,h){this.type=h.type,this.name=o,this.boundExpression=h}static parse(o,h){if(o.length!==2||typeof o[1]!="string")return h.error("'var' expression requires exactly one string literal argument.");const p=o[1];return h.scope.has(p)?new wh(p,h.scope.get(p)):h.error(`Unknown variable "${p}". Make sure "${p}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(o){return this.boundExpression.evaluate(o)}eachChild(){}outputDefined(){return!1}}class Uo{constructor(o,h,p,_){this.name=o,this.type=h,this._evaluate=p,this.args=_}evaluate(o){return this._evaluate(o,this.args)}eachChild(o){this.args.forEach(o)}outputDefined(){return!1}static parse(o,h){const p=o[0],_=Uo.definitions[p];if(!_)return h.error(`Unknown expression "${p}". If you wanted a literal array, use ["literal", [...]].`,0);const x=Array.isArray(_)?_[0]:_.type,w=Array.isArray(_)?[[_[1],_[2]]]:_.overloads,I=w.filter(([k])=>!Array.isArray(k)||k.length===o.length-1);let P=null;for(const[k,N]of I){P=new _h(h.registry,vc,h.path,null,h.scope);const B=[];let $=!1;for(let H=1;H{return $=B,Array.isArray($)?`(${$.map(ne).join(", ")})`:`(${ne($.type)}...)`;var $}).join(" | "),N=[];for(let B=1;B{h=o?h&&vc(p):h&&p instanceof nl}),!!h&&Sh(u)&&xc(u,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function Sh(u){if(u instanceof Uo&&(u.name==="get"&&u.args.length===1||u.name==="feature-state"||u.name==="has"&&u.args.length===1||u.name==="properties"||u.name==="geometry-type"||u.name==="id"||/^filter-/.test(u.name))||u instanceof Ol)return!1;let o=!0;return u.eachChild(h=>{o&&!Sh(h)&&(o=!1)}),o}function bc(u){if(u instanceof Uo&&u.name==="feature-state")return!1;let o=!0;return u.eachChild(h=>{o&&!bc(h)&&(o=!1)}),o}function xc(u,o){if(u instanceof Uo&&o.indexOf(u.name)>=0)return!1;let h=!0;return u.eachChild(p=>{h&&!xc(p,o)&&(h=!1)}),h}function wc(u,o){const h=u.length-1;let p,_,x=0,w=h,I=0;for(;x<=w;)if(I=Math.floor((x+w)/2),p=u[I],_=u[I+1],p<=o){if(I===h||o<_)return I;x=I+1}else{if(!(p>o))throw new Er("Input is not a number.");w=I-1}return 0}class Sc{constructor(o,h,p){this.type=o,this.input=h,this.labels=[],this.outputs=[];for(const[_,x]of p)this.labels.push(_),this.outputs.push(x)}static parse(o,h){if(o.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${o.length-1}.`);if((o.length-1)%2!=0)return h.error("Expected an even number of arguments.");const p=h.parse(o[1],1,ft);if(!p)return null;const _=[];let x=null;h.expectedType&&h.expectedType.kind!=="value"&&(x=h.expectedType);for(let w=1;w=I)return h.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',k);const B=h.parse(P,N,x);if(!B)return null;x=x||B.type,_.push([I,B])}return new Sc(x,p,_)}evaluate(o){const h=this.labels,p=this.outputs;if(h.length===1)return p[0].evaluate(o);const _=this.input.evaluate(o);if(_<=h[0])return p[0].evaluate(o);const x=h.length;return _>=h[x-1]?p[x-1].evaluate(o):p[wc(h,_)].evaluate(o)}eachChild(o){o(this.input);for(const h of this.outputs)o(h)}outputDefined(){return this.outputs.every(o=>o.outputDefined())}}function Py(u){return u&&u.__esModule&&Object.prototype.hasOwnProperty.call(u,"default")?u.default:u}var My=Rm;function Rm(u,o,h,p){this.cx=3*u,this.bx=3*(h-u)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*o,this.by=3*(p-o)-this.cy,this.ay=1-this.cy-this.by,this.p1x=u,this.p1y=o,this.p2x=h,this.p2y=p}Rm.prototype={sampleCurveX:function(u){return((this.ax*u+this.bx)*u+this.cx)*u},sampleCurveY:function(u){return((this.ay*u+this.by)*u+this.cy)*u},sampleCurveDerivativeX:function(u){return(3*this.ax*u+2*this.bx)*u+this.cx},solveCurveX:function(u,o){if(o===void 0&&(o=1e-6),u<0)return 0;if(u>1)return 1;for(var h=u,p=0;p<8;p++){var _=this.sampleCurveX(h)-u;if(Math.abs(_)_?w=h:I=h,h=.5*(I-w)+w;return h},solve:function(u,o){return this.sampleCurveY(this.solveCurveX(u,o))}};var Ay=Py(My);function zl(u,o,h){return u+h*(o-u)}function Eh(u,o,h){return u.map((p,_)=>zl(p,o[_],h))}const lo={number:zl,color:function(u,o,h,p="rgb"){switch(p){case"rgb":{const[_,x,w,I]=Eh(u.rgb,o.rgb,h);return new Wn(_,x,w,I,!1)}case"hcl":{const[_,x,w,I]=u.hcl,[P,k,N,B]=o.hcl;let $,H;if(isNaN(_)||isNaN(P))isNaN(_)?isNaN(P)?$=NaN:($=P,w!==1&&w!==0||(H=k)):($=_,N!==1&&N!==0||(H=x));else{let De=P-_;P>_&&De>180?De-=360:P<_&&_-P>180&&(De+=360),$=_+h*De}const[Y,te,le,ge]=function([De,we,Pe,Je]){return De=isNaN(De)?0:De*rn,Dr([Pe,Math.cos(De)*we,Math.sin(De)*we,Je])}([$,H??zl(x,k,h),zl(w,N,h),zl(I,B,h)]);return new Wn(Y,te,le,ge,!1)}case"lab":{const[_,x,w,I]=Dr(Eh(u.lab,o.lab,h));return new Wn(_,x,w,I,!1)}}},array:Eh,padding:function(u,o,h){return new wo(Eh(u.values,o.values,h))},variableAnchorOffsetCollection:function(u,o,h){const p=u.values,_=o.values;if(p.length!==_.length)throw new Er(`Cannot interpolate values of different length. from: ${u.toString()}, to: ${o.toString()}`);const x=[];for(let w=0;wtypeof N!="number"||N<0||N>1))return h.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);_={name:"cubic-bezier",controlPoints:k}}}if(o.length-1<4)return h.error(`Expected at least 4 arguments, but found only ${o.length-1}.`);if((o.length-1)%2!=0)return h.error("Expected an even number of arguments.");if(x=h.parse(x,2,ft),!x)return null;const I=[];let P=null;p==="interpolate-hcl"||p==="interpolate-lab"?P=Ur:h.expectedType&&h.expectedType.kind!=="value"&&(P=h.expectedType);for(let k=0;k=N)return h.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',$);const Y=h.parse(B,H,P);if(!Y)return null;P=P||Y.type,I.push([N,Y])}return ke(P,ft)||ke(P,Ur)||ke(P,ue)||ke(P,W)||ke(P,K(ft))?new $i(P,p,_,x,I):h.error(`Type ${ne(P)} is not interpolatable.`)}evaluate(o){const h=this.labels,p=this.outputs;if(h.length===1)return p[0].evaluate(o);const _=this.input.evaluate(o);if(_<=h[0])return p[0].evaluate(o);const x=h.length;if(_>=h[x-1])return p[x-1].evaluate(o);const w=wc(h,_),I=$i.interpolationFactor(this.interpolation,_,h[w],h[w+1]),P=p[w].evaluate(o),k=p[w+1].evaluate(o);switch(this.operator){case"interpolate":return lo[this.type.kind](P,k,I);case"interpolate-hcl":return lo.color(P,k,I,"hcl");case"interpolate-lab":return lo.color(P,k,I,"lab")}}eachChild(o){o(this.input);for(const h of this.outputs)o(h)}outputDefined(){return this.outputs.every(o=>o.outputDefined())}}function Fn(u,o,h,p){const _=p-h,x=u-h;return _===0?0:o===1?x/_:(Math.pow(o,x)-1)/(Math.pow(o,_)-1)}class Ih{constructor(o,h){this.type=o,this.args=h}static parse(o,h){if(o.length<2)return h.error("Expectected at least one argument.");let p=null;const _=h.expectedType;_&&_.kind!=="value"&&(p=_);const x=[];for(const I of o.slice(1)){const P=h.parse(I,1+x.length,p,void 0,{typeAnnotation:"omit"});if(!P)return null;p=p||P.type,x.push(P)}if(!p)throw new Error("No output type");const w=_&&x.some(I=>Q(_,I.type));return new Ih(w?sn:p,x)}evaluate(o){let h,p=null,_=0;for(const x of this.args)if(_++,p=x.evaluate(o),p&&p instanceof cs&&!p.available&&(h||(h=p.name),p=null,_===this.args.length&&(p=h)),p!==null)break;return p}eachChild(o){this.args.forEach(o)}outputDefined(){return this.args.every(o=>o.outputDefined())}}class Ch{constructor(o,h){this.type=h.type,this.bindings=[].concat(o),this.result=h}evaluate(o){return this.result.evaluate(o)}eachChild(o){for(const h of this.bindings)o(h[1]);o(this.result)}static parse(o,h){if(o.length<4)return h.error(`Expected at least 3 arguments, but found ${o.length-1} instead.`);const p=[];for(let x=1;x=p.length)throw new Er(`Array index out of bounds: ${h} > ${p.length-1}.`);if(h!==Math.floor(h))throw new Er(`Array index must be an integer, but found ${h} instead.`);return p[h]}eachChild(o){o(this.index),o(this.input)}outputDefined(){return!1}}class _p{constructor(o,h){this.type=an,this.needle=o,this.haystack=h}static parse(o,h){if(o.length!==3)return h.error(`Expected 2 arguments, but found ${o.length-1} instead.`);const p=h.parse(o[1],1,sn),_=h.parse(o[2],2,sn);return p&&_?Te(p.type,[an,un,ft,ni,sn])?new _p(p,_):h.error(`Expected first argument to be of type boolean, string, number or null, but found ${ne(p.type)} instead`):null}evaluate(o){const h=this.needle.evaluate(o),p=this.haystack.evaluate(o);if(!p)return!1;if(!_e(h,["boolean","string","number","null"]))throw new Er(`Expected first argument to be of type boolean, string, number or null, but found ${ne(ii(h))} instead.`);if(!_e(p,["string","array"]))throw new Er(`Expected second argument to be of type array or string, but found ${ne(ii(p))} instead.`);return p.indexOf(h)>=0}eachChild(o){o(this.needle),o(this.haystack)}outputDefined(){return!0}}class Th{constructor(o,h,p){this.type=ft,this.needle=o,this.haystack=h,this.fromIndex=p}static parse(o,h){if(o.length<=2||o.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${o.length-1} instead.`);const p=h.parse(o[1],1,sn),_=h.parse(o[2],2,sn);if(!p||!_)return null;if(!Te(p.type,[an,un,ft,ni,sn]))return h.error(`Expected first argument to be of type boolean, string, number or null, but found ${ne(p.type)} instead`);if(o.length===4){const x=h.parse(o[3],3,ft);return x?new Th(p,_,x):null}return new Th(p,_)}evaluate(o){const h=this.needle.evaluate(o),p=this.haystack.evaluate(o);if(!_e(h,["boolean","string","number","null"]))throw new Er(`Expected first argument to be of type boolean, string, number or null, but found ${ne(ii(h))} instead.`);if(!_e(p,["string","array"]))throw new Er(`Expected second argument to be of type array or string, but found ${ne(ii(p))} instead.`);if(this.fromIndex){const _=this.fromIndex.evaluate(o);return p.indexOf(h,_)}return p.indexOf(h)}eachChild(o){o(this.needle),o(this.haystack),this.fromIndex&&o(this.fromIndex)}outputDefined(){return!1}}class yp{constructor(o,h,p,_,x,w){this.inputType=o,this.type=h,this.input=p,this.cases=_,this.outputs=x,this.otherwise=w}static parse(o,h){if(o.length<5)return h.error(`Expected at least 4 arguments, but found only ${o.length-1}.`);if(o.length%2!=1)return h.error("Expected an even number of arguments.");let p,_;h.expectedType&&h.expectedType.kind!=="value"&&(_=h.expectedType);const x={},w=[];for(let k=2;kNumber.MAX_SAFE_INTEGER)return $.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof Y=="number"&&Math.floor(Y)!==Y)return $.error("Numeric branch labels must be integer values.");if(p){if($.checkSubtype(p,ii(Y)))return null}else p=ii(Y);if(x[String(Y)]!==void 0)return $.error("Branch labels must be unique.");x[String(Y)]=w.length}const H=h.parse(B,k,_);if(!H)return null;_=_||H.type,w.push(H)}const I=h.parse(o[1],1,sn);if(!I)return null;const P=h.parse(o[o.length-1],o.length-1,_);return P?I.type.kind!=="value"&&h.concat(1).checkSubtype(p,I.type)?null:new yp(p,_,I,x,w,P):null}evaluate(o){const h=this.input.evaluate(o);return(ii(h)===this.inputType&&this.outputs[this.cases[h]]||this.otherwise).evaluate(o)}eachChild(o){o(this.input),this.outputs.forEach(o),o(this.otherwise)}outputDefined(){return this.outputs.every(o=>o.outputDefined())&&this.otherwise.outputDefined()}}class vp{constructor(o,h,p){this.type=o,this.branches=h,this.otherwise=p}static parse(o,h){if(o.length<4)return h.error(`Expected at least 3 arguments, but found only ${o.length-1}.`);if(o.length%2!=0)return h.error("Expected an odd number of arguments.");let p;h.expectedType&&h.expectedType.kind!=="value"&&(p=h.expectedType);const _=[];for(let w=1;wh.outputDefined())&&this.otherwise.outputDefined()}}class Lh{constructor(o,h,p,_){this.type=o,this.input=h,this.beginIndex=p,this.endIndex=_}static parse(o,h){if(o.length<=2||o.length>=5)return h.error(`Expected 3 or 4 arguments, but found ${o.length-1} instead.`);const p=h.parse(o[1],1,sn),_=h.parse(o[2],2,ft);if(!p||!_)return null;if(!Te(p.type,[K(sn),un,sn]))return h.error(`Expected first argument to be of type array or string, but found ${ne(p.type)} instead`);if(o.length===4){const x=h.parse(o[3],3,ft);return x?new Lh(p.type,p,_,x):null}return new Lh(p.type,p,_)}evaluate(o){const h=this.input.evaluate(o),p=this.beginIndex.evaluate(o);if(!_e(h,["string","array"]))throw new Er(`Expected first argument to be of type array or string, but found ${ne(ii(h))} instead.`);if(this.endIndex){const _=this.endIndex.evaluate(o);return h.slice(p,_)}return h.slice(p)}eachChild(o){o(this.input),o(this.beginIndex),this.endIndex&&o(this.endIndex)}outputDefined(){return!1}}function Nm(u,o){return u==="=="||u==="!="?o.kind==="boolean"||o.kind==="string"||o.kind==="number"||o.kind==="null"||o.kind==="value":o.kind==="string"||o.kind==="number"||o.kind==="value"}function Om(u,o,h,p){return p.compare(o,h)===0}function vu(u,o,h){const p=u!=="=="&&u!=="!=";return class DE{constructor(x,w,I){this.type=an,this.lhs=x,this.rhs=w,this.collator=I,this.hasUntypedArgument=x.type.kind==="value"||w.type.kind==="value"}static parse(x,w){if(x.length!==3&&x.length!==4)return w.error("Expected two or three arguments.");const I=x[0];let P=w.parse(x[1],1,sn);if(!P)return null;if(!Nm(I,P.type))return w.concat(1).error(`"${I}" comparisons are not supported for type '${ne(P.type)}'.`);let k=w.parse(x[2],2,sn);if(!k)return null;if(!Nm(I,k.type))return w.concat(2).error(`"${I}" comparisons are not supported for type '${ne(k.type)}'.`);if(P.type.kind!==k.type.kind&&P.type.kind!=="value"&&k.type.kind!=="value")return w.error(`Cannot compare types '${ne(P.type)}' and '${ne(k.type)}'.`);p&&(P.type.kind==="value"&&k.type.kind!=="value"?P=new Vo(k.type,[P]):P.type.kind!=="value"&&k.type.kind==="value"&&(k=new Vo(P.type,[k])));let N=null;if(x.length===4){if(P.type.kind!=="string"&&k.type.kind!=="string"&&P.type.kind!=="value"&&k.type.kind!=="value")return w.error("Cannot use collator to compare non-string types.");if(N=w.parse(x[3],3,Ma),!N)return null}return new DE(P,k,N)}evaluate(x){const w=this.lhs.evaluate(x),I=this.rhs.evaluate(x);if(p&&this.hasUntypedArgument){const P=ii(w),k=ii(I);if(P.kind!==k.kind||P.kind!=="string"&&P.kind!=="number")throw new Er(`Expected arguments for "${u}" to be (string, string) or (number, number), but found (${P.kind}, ${k.kind}) instead.`)}if(this.collator&&!p&&this.hasUntypedArgument){const P=ii(w),k=ii(I);if(P.kind!=="string"||k.kind!=="string")return o(x,w,I)}return this.collator?h(x,w,I,this.collator.evaluate(x)):o(x,w,I)}eachChild(x){x(this.lhs),x(this.rhs),this.collator&&x(this.collator)}outputDefined(){return!0}}}const ky=vu("==",function(u,o,h){return o===h},Om),Dy=vu("!=",function(u,o,h){return o!==h},function(u,o,h,p){return!Om(0,o,h,p)}),Ry=vu("<",function(u,o,h){return o",function(u,o,h){return o>h},function(u,o,h,p){return p.compare(o,h)>0}),Oy=vu("<=",function(u,o,h){return o<=h},function(u,o,h,p){return p.compare(o,h)<=0}),zy=vu(">=",function(u,o,h){return o>=h},function(u,o,h,p){return p.compare(o,h)>=0});class bp{constructor(o,h,p,_,x){this.type=un,this.number=o,this.locale=h,this.currency=p,this.minFractionDigits=_,this.maxFractionDigits=x}static parse(o,h){if(o.length!==3)return h.error("Expected two arguments.");const p=h.parse(o[1],1,ft);if(!p)return null;const _=o[2];if(typeof _!="object"||Array.isArray(_))return h.error("NumberFormat options argument must be an object.");let x=null;if(_.locale&&(x=h.parse(_.locale,1,un),!x))return null;let w=null;if(_.currency&&(w=h.parse(_.currency,1,un),!w))return null;let I=null;if(_["min-fraction-digits"]&&(I=h.parse(_["min-fraction-digits"],1,ft),!I))return null;let P=null;return _["max-fraction-digits"]&&(P=h.parse(_["max-fraction-digits"],1,ft),!P)?null:new bp(p,x,w,I,P)}evaluate(o){return new Intl.NumberFormat(this.locale?this.locale.evaluate(o):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(o):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(o):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(o):void 0}).format(this.number.evaluate(o))}eachChild(o){o(this.number),this.locale&&o(this.locale),this.currency&&o(this.currency),this.minFractionDigits&&o(this.minFractionDigits),this.maxFractionDigits&&o(this.maxFractionDigits)}outputDefined(){return!1}}class Ph{constructor(o){this.type=Wr,this.sections=o}static parse(o,h){if(o.length<2)return h.error("Expected at least one argument.");const p=o[1];if(!Array.isArray(p)&&typeof p=="object")return h.error("First argument must be an image or text section.");const _=[];let x=!1;for(let w=1;w<=o.length-1;++w){const I=o[w];if(x&&typeof I=="object"&&!Array.isArray(I)){x=!1;let P=null;if(I["font-scale"]&&(P=h.parse(I["font-scale"],1,ft),!P))return null;let k=null;if(I["text-font"]&&(k=h.parse(I["text-font"],1,K(un)),!k))return null;let N=null;if(I["text-color"]&&(N=h.parse(I["text-color"],1,Ur),!N))return null;const B=_[_.length-1];B.scale=P,B.font=k,B.textColor=N}else{const P=h.parse(o[w],1,sn);if(!P)return null;const k=P.type.kind;if(k!=="string"&&k!=="value"&&k!=="null"&&k!=="resolvedImage")return h.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");x=!0,_.push({content:P,scale:null,font:null,textColor:null})}}return new Ph(_)}evaluate(o){return new Bo(this.sections.map(h=>{const p=h.content.evaluate(o);return ii(p)===q?new mp("",p,null,null,null):new mp(gc(p),null,h.scale?h.scale.evaluate(o):null,h.font?h.font.evaluate(o).join(","):null,h.textColor?h.textColor.evaluate(o):null)}))}eachChild(o){for(const h of this.sections)o(h.content),h.scale&&o(h.scale),h.font&&o(h.font),h.textColor&&o(h.textColor)}outputDefined(){return!1}}class xp{constructor(o){this.type=q,this.input=o}static parse(o,h){if(o.length!==2)return h.error("Expected two arguments.");const p=h.parse(o[1],1,un);return p?new xp(p):h.error("No image name provided.")}evaluate(o){const h=this.input.evaluate(o),p=cs.fromString(h);return p&&o.availableImages&&(p.available=o.availableImages.indexOf(h)>-1),p}eachChild(o){o(this.input)}outputDefined(){return!1}}class wp{constructor(o){this.type=ft,this.input=o}static parse(o,h){if(o.length!==2)return h.error(`Expected 1 argument, but found ${o.length-1} instead.`);const p=h.parse(o[1],1);return p?p.type.kind!=="array"&&p.type.kind!=="string"&&p.type.kind!=="value"?h.error(`Expected argument of type string or array, but found ${ne(p.type)} instead.`):new wp(p):null}evaluate(o){const h=this.input.evaluate(o);if(typeof h=="string"||Array.isArray(h))return h.length;throw new Er(`Expected value to be of type string or array, but found ${ne(ii(h))} instead.`)}eachChild(o){o(this.input)}outputDefined(){return!1}}const bu={"==":ky,"!=":Dy,">":Ny,"<":Ry,">=":zy,"<=":Oy,array:Vo,at:gp,boolean:Vo,case:vp,coalesce:Ih,collator:yu,format:Ph,image:xp,in:_p,"index-of":Th,interpolate:$i,"interpolate-hcl":$i,"interpolate-lab":$i,length:wp,let:Ch,literal:nl,match:yp,number:Vo,"number-format":bp,object:Vo,slice:Lh,step:Sc,string:Vo,"to-boolean":Js,"to-color":Js,"to-number":Js,"to-string":Js,var:wh,within:Ol};function zm(u,[o,h,p,_]){o=o.evaluate(u),h=h.evaluate(u),p=p.evaluate(u);const x=_?_.evaluate(u):1,w=_u(o,h,p,x);if(w)throw new Er(w);return new Wn(o/255,h/255,p/255,x,!1)}function Fm(u,o){return u in o}function Sp(u,o){const h=o[u];return h===void 0?null:h}function Fl(u){return{type:u}}function Bm(u){return{result:"success",value:u}}function xu(u){return{result:"error",value:u}}function wu(u){return u["property-type"]==="data-driven"||u["property-type"]==="cross-faded-data-driven"}function Vm(u){return!!u.expression&&u.expression.parameters.indexOf("zoom")>-1}function Ep(u){return!!u.expression&&u.expression.interpolated}function kn(u){return u instanceof Number?"number":u instanceof String?"string":u instanceof Boolean?"boolean":Array.isArray(u)?"array":u===null?"null":typeof u}function Mh(u){return typeof u=="object"&&u!==null&&!Array.isArray(u)}function Fy(u){return u}function Um(u,o){const h=o.type==="color",p=u.stops&&typeof u.stops[0][0]=="object",_=p||!(p||u.property!==void 0),x=u.type||(Ep(o)?"exponential":"interval");if(h||o.type==="padding"){const N=h?Wn.parse:wo.parse;(u=as({},u)).stops&&(u.stops=u.stops.map(B=>[B[0],N(B[1])])),u.default=N(u.default?u.default:o.default)}if(u.colorSpace&&(w=u.colorSpace)!=="rgb"&&w!=="hcl"&&w!=="lab")throw new Error(`Unknown color space: "${u.colorSpace}"`);var w;let I,P,k;if(x==="exponential")I=Tn;else if(x==="interval")I=By;else if(x==="categorical"){I=Zr,P=Object.create(null);for(const N of u.stops)P[N[0]]=N[1];k=typeof u.stops[0][0]}else{if(x!=="identity")throw new Error(`Unknown function type "${x}"`);I=Ip}if(p){const N={},B=[];for(let Y=0;YY[0]),evaluate:({zoom:Y},te)=>Tn({stops:$,base:u.base},o,Y).evaluate(Y,te)}}if(_){const N=x==="exponential"?{name:"exponential",base:u.base!==void 0?u.base:1}:null;return{kind:"camera",interpolationType:N,interpolationFactor:$i.interpolationFactor.bind(void 0,N),zoomStops:u.stops.map(B=>B[0]),evaluate:({zoom:B})=>I(u,o,B,P,k)}}return{kind:"source",evaluate(N,B){const $=B&&B.properties?B.properties[u.property]:void 0;return $===void 0?Ec(u.default,o.default):I(u,o,$,P,k)}}}function Ec(u,o,h){return u!==void 0?u:o!==void 0?o:h!==void 0?h:void 0}function Zr(u,o,h,p,_){return Ec(typeof h===_?p[h]:void 0,u.default,o.default)}function By(u,o,h){if(kn(h)!=="number")return Ec(u.default,o.default);const p=u.stops.length;if(p===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[p-1][0])return u.stops[p-1][1];const _=wc(u.stops.map(x=>x[0]),h);return u.stops[_][1]}function Tn(u,o,h){const p=u.base!==void 0?u.base:1;if(kn(h)!=="number")return Ec(u.default,o.default);const _=u.stops.length;if(_===1||h<=u.stops[0][0])return u.stops[0][1];if(h>=u.stops[_-1][0])return u.stops[_-1][1];const x=wc(u.stops.map(N=>N[0]),h),w=function(N,B,$,H){const Y=H-$,te=N-$;return Y===0?0:B===1?te/Y:(Math.pow(B,te)-1)/(Math.pow(B,Y)-1)}(h,p,u.stops[x][0],u.stops[x+1][0]),I=u.stops[x][1],P=u.stops[x+1][1],k=lo[o.type]||Fy;return typeof I.evaluate=="function"?{evaluate(...N){const B=I.evaluate.apply(void 0,N),$=P.evaluate.apply(void 0,N);if(B!==void 0&&$!==void 0)return k(B,$,w,u.colorSpace)}}:k(I,P,w,u.colorSpace)}function Ip(u,o,h){switch(o.type){case"color":h=Wn.parse(h);break;case"formatted":h=Bo.fromString(h.toString());break;case"resolvedImage":h=cs.fromString(h.toString());break;case"padding":h=wo.parse(h);break;default:kn(h)===o.type||o.type==="enum"&&o.values[h]||(h=void 0)}return Ec(h,u.default,o.default)}Uo.register(bu,{error:[{kind:"error"},[un],(u,[o])=>{throw new Er(o.evaluate(u))}],typeof:[un,[sn],(u,[o])=>ne(ii(o.evaluate(u)))],"to-rgba":[K(ft,4),[Ur],(u,[o])=>{const[h,p,_,x]=o.evaluate(u).rgb;return[255*h,255*p,255*_,x]}],rgb:[Ur,[ft,ft,ft],zm],rgba:[Ur,[ft,ft,ft,ft],zm],has:{type:an,overloads:[[[un],(u,[o])=>Fm(o.evaluate(u),u.properties())],[[un,ls],(u,[o,h])=>Fm(o.evaluate(u),h.evaluate(u))]]},get:{type:sn,overloads:[[[un],(u,[o])=>Sp(o.evaluate(u),u.properties())],[[un,ls],(u,[o,h])=>Sp(o.evaluate(u),h.evaluate(u))]]},"feature-state":[sn,[un],(u,[o])=>Sp(o.evaluate(u),u.featureState||{})],properties:[ls,[],u=>u.properties()],"geometry-type":[un,[],u=>u.geometryType()],id:[sn,[],u=>u.id()],zoom:[ft,[],u=>u.globals.zoom],"heatmap-density":[ft,[],u=>u.globals.heatmapDensity||0],"line-progress":[ft,[],u=>u.globals.lineProgress||0],accumulated:[sn,[],u=>u.globals.accumulated===void 0?null:u.globals.accumulated],"+":[ft,Fl(ft),(u,o)=>{let h=0;for(const p of o)h+=p.evaluate(u);return h}],"*":[ft,Fl(ft),(u,o)=>{let h=1;for(const p of o)h*=p.evaluate(u);return h}],"-":{type:ft,overloads:[[[ft,ft],(u,[o,h])=>o.evaluate(u)-h.evaluate(u)],[[ft],(u,[o])=>-o.evaluate(u)]]},"/":[ft,[ft,ft],(u,[o,h])=>o.evaluate(u)/h.evaluate(u)],"%":[ft,[ft,ft],(u,[o,h])=>o.evaluate(u)%h.evaluate(u)],ln2:[ft,[],()=>Math.LN2],pi:[ft,[],()=>Math.PI],e:[ft,[],()=>Math.E],"^":[ft,[ft,ft],(u,[o,h])=>Math.pow(o.evaluate(u),h.evaluate(u))],sqrt:[ft,[ft],(u,[o])=>Math.sqrt(o.evaluate(u))],log10:[ft,[ft],(u,[o])=>Math.log(o.evaluate(u))/Math.LN10],ln:[ft,[ft],(u,[o])=>Math.log(o.evaluate(u))],log2:[ft,[ft],(u,[o])=>Math.log(o.evaluate(u))/Math.LN2],sin:[ft,[ft],(u,[o])=>Math.sin(o.evaluate(u))],cos:[ft,[ft],(u,[o])=>Math.cos(o.evaluate(u))],tan:[ft,[ft],(u,[o])=>Math.tan(o.evaluate(u))],asin:[ft,[ft],(u,[o])=>Math.asin(o.evaluate(u))],acos:[ft,[ft],(u,[o])=>Math.acos(o.evaluate(u))],atan:[ft,[ft],(u,[o])=>Math.atan(o.evaluate(u))],min:[ft,Fl(ft),(u,o)=>Math.min(...o.map(h=>h.evaluate(u)))],max:[ft,Fl(ft),(u,o)=>Math.max(...o.map(h=>h.evaluate(u)))],abs:[ft,[ft],(u,[o])=>Math.abs(o.evaluate(u))],round:[ft,[ft],(u,[o])=>{const h=o.evaluate(u);return h<0?-Math.round(-h):Math.round(h)}],floor:[ft,[ft],(u,[o])=>Math.floor(o.evaluate(u))],ceil:[ft,[ft],(u,[o])=>Math.ceil(o.evaluate(u))],"filter-==":[an,[un,sn],(u,[o,h])=>u.properties()[o.value]===h.value],"filter-id-==":[an,[sn],(u,[o])=>u.id()===o.value],"filter-type-==":[an,[un],(u,[o])=>u.geometryType()===o.value],"filter-<":[an,[un,sn],(u,[o,h])=>{const p=u.properties()[o.value],_=h.value;return typeof p==typeof _&&p<_}],"filter-id-<":[an,[sn],(u,[o])=>{const h=u.id(),p=o.value;return typeof h==typeof p&&h":[an,[un,sn],(u,[o,h])=>{const p=u.properties()[o.value],_=h.value;return typeof p==typeof _&&p>_}],"filter-id->":[an,[sn],(u,[o])=>{const h=u.id(),p=o.value;return typeof h==typeof p&&h>p}],"filter-<=":[an,[un,sn],(u,[o,h])=>{const p=u.properties()[o.value],_=h.value;return typeof p==typeof _&&p<=_}],"filter-id-<=":[an,[sn],(u,[o])=>{const h=u.id(),p=o.value;return typeof h==typeof p&&h<=p}],"filter->=":[an,[un,sn],(u,[o,h])=>{const p=u.properties()[o.value],_=h.value;return typeof p==typeof _&&p>=_}],"filter-id->=":[an,[sn],(u,[o])=>{const h=u.id(),p=o.value;return typeof h==typeof p&&h>=p}],"filter-has":[an,[sn],(u,[o])=>o.value in u.properties()],"filter-has-id":[an,[],u=>u.id()!==null&&u.id()!==void 0],"filter-type-in":[an,[K(un)],(u,[o])=>o.value.indexOf(u.geometryType())>=0],"filter-id-in":[an,[K(sn)],(u,[o])=>o.value.indexOf(u.id())>=0],"filter-in-small":[an,[un,K(sn)],(u,[o,h])=>h.value.indexOf(u.properties()[o.value])>=0],"filter-in-large":[an,[un,K(sn)],(u,[o,h])=>function(p,_,x,w){for(;x<=w;){const I=x+w>>1;if(_[I]===p)return!0;_[I]>p?w=I-1:x=I+1}return!1}(u.properties()[o.value],h.value,0,h.value.length-1)],all:{type:an,overloads:[[[an,an],(u,[o,h])=>o.evaluate(u)&&h.evaluate(u)],[Fl(an),(u,o)=>{for(const h of o)if(!h.evaluate(u))return!1;return!0}]]},any:{type:an,overloads:[[[an,an],(u,[o,h])=>o.evaluate(u)||h.evaluate(u)],[Fl(an),(u,o)=>{for(const h of o)if(h.evaluate(u))return!0;return!1}]]},"!":[an,[an],(u,[o])=>!o.evaluate(u)],"is-supported-script":[an,[un],(u,[o])=>{const h=u.globals&&u.globals.isSupportedScript;return!h||h(o.evaluate(u))}],upcase:[un,[un],(u,[o])=>o.evaluate(u).toUpperCase()],downcase:[un,[un],(u,[o])=>o.evaluate(u).toLowerCase()],concat:[un,Fl(sn),(u,o)=>o.map(h=>gc(h.evaluate(u))).join("")],"resolved-locale":[un,[Ma],(u,[o])=>o.evaluate(u).resolvedLocale()]});class fr{constructor(o,h){var p;this.expression=o,this._warningHistory={},this._evaluator=new Zn,this._defaultValue=h?(p=h).type==="color"&&Mh(p.default)?new Wn(0,0,0,0):p.type==="color"?Wn.parse(p.default)||null:p.type==="padding"?wo.parse(p.default)||null:p.type==="variableAnchorOffsetCollection"?us.parse(p.default)||null:p.default===void 0?null:p.default:null,this._enumValues=h&&h.type==="enum"?h.values:null}evaluateWithoutErrorHandling(o,h,p,_,x,w){return this._evaluator.globals=o,this._evaluator.feature=h,this._evaluator.featureState=p,this._evaluator.canonical=_,this._evaluator.availableImages=x||null,this._evaluator.formattedSection=w,this.expression.evaluate(this._evaluator)}evaluate(o,h,p,_,x,w){this._evaluator.globals=o,this._evaluator.feature=h||null,this._evaluator.featureState=p||null,this._evaluator.canonical=_,this._evaluator.availableImages=x||null,this._evaluator.formattedSection=w||null;try{const I=this.expression.evaluate(this._evaluator);if(I==null||typeof I=="number"&&I!=I)return this._defaultValue;if(this._enumValues&&!(I in this._enumValues))throw new Er(`Expected value to be one of ${Object.keys(this._enumValues).map(P=>JSON.stringify(P)).join(", ")}, but found ${JSON.stringify(I)} instead.`);return I}catch(I){return this._warningHistory[I.message]||(this._warningHistory[I.message]=!0,typeof console<"u"&&console.warn(I.message)),this._defaultValue}}}function rr(u){return Array.isArray(u)&&u.length>0&&typeof u[0]=="string"&&u[0]in bu}function Bl(u,o){const h=new _h(bu,vc,[],o?function(_){const x={color:Ur,string:un,number:ft,enum:un,boolean:an,formatted:Wr,padding:ue,resolvedImage:q,variableAnchorOffsetCollection:W};return _.type==="array"?K(x[_.value]||sn,_.length):x[_.type]}(o):void 0),p=h.parse(u,void 0,void 0,void 0,o&&o.type==="string"?{typeAnnotation:"coerce"}:void 0);return p?Bm(new fr(p,o)):xu(h.errors)}class Ah{constructor(o,h){this.kind=o,this._styleExpression=h,this.isStateDependent=o!=="constant"&&!bc(h.expression)}evaluateWithoutErrorHandling(o,h,p,_,x,w){return this._styleExpression.evaluateWithoutErrorHandling(o,h,p,_,x,w)}evaluate(o,h,p,_,x,w){return this._styleExpression.evaluate(o,h,p,_,x,w)}}class Cp{constructor(o,h,p,_){this.kind=o,this.zoomStops=p,this._styleExpression=h,this.isStateDependent=o!=="camera"&&!bc(h.expression),this.interpolationType=_}evaluateWithoutErrorHandling(o,h,p,_,x,w){return this._styleExpression.evaluateWithoutErrorHandling(o,h,p,_,x,w)}evaluate(o,h,p,_,x,w){return this._styleExpression.evaluate(o,h,p,_,x,w)}interpolationFactor(o,h,p){return this.interpolationType?$i.interpolationFactor(this.interpolationType,o,h,p):0}}function Gm(u,o){const h=Bl(u,o);if(h.result==="error")return h;const p=h.value.expression,_=Sh(p);if(!_&&!wu(o))return xu([new so("","data expressions not supported")]);const x=xc(p,["zoom"]);if(!x&&!Vm(o))return xu([new so("","zoom expressions not supported")]);const w=Dh(p);return w||x?w instanceof so?xu([w]):w instanceof $i&&!Ep(o)?xu([new so("",'"interpolate" expressions cannot be used with this property')]):Bm(w?new Cp(_?"camera":"composite",h.value,w.labels,w instanceof $i?w.interpolation:void 0):new Ah(_?"constant":"source",h.value)):xu([new so("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class kh{constructor(o,h){this._parameters=o,this._specification=h,as(this,Um(this._parameters,this._specification))}static deserialize(o){return new kh(o._parameters,o._specification)}static serialize(o){return{_parameters:o._parameters,_specification:o._specification}}}function Dh(u){let o=null;if(u instanceof Ch)o=Dh(u.result);else if(u instanceof Ih){for(const h of u.args)if(o=Dh(h),o)break}else(u instanceof Sc||u instanceof $i)&&u.input instanceof Uo&&u.input.name==="zoom"&&(o=u);return o instanceof so||u.eachChild(h=>{const p=Dh(h);p instanceof so?o=p:!o&&p?o=new so("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):o&&p&&o!==p&&(o=new so("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),o}function Rh(u){if(u===!0||u===!1)return!0;if(!Array.isArray(u)||u.length===0)return!1;switch(u[0]){case"has":return u.length>=2&&u[1]!=="$id"&&u[1]!=="$type";case"in":return u.length>=3&&(typeof u[1]!="string"||Array.isArray(u[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return u.length!==3||Array.isArray(u[1])||Array.isArray(u[2]);case"any":case"all":for(const o of u.slice(1))if(!Rh(o)&&typeof o!="boolean")return!1;return!0;default:return!0}}const jm={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function Nh(u){if(u==null)return{filter:()=>!0,needGeometry:!1};Rh(u)||(u=zh(u));const o=Bl(u,jm);if(o.result==="error")throw new Error(o.value.map(h=>`${h.key}: ${h.message}`).join(", "));return{filter:(h,p,_)=>o.value.evaluate(h,p,{},_),needGeometry:Oh(u)}}function qm(u,o){return uo?1:0}function Oh(u){if(!Array.isArray(u))return!1;if(u[0]==="within")return!0;for(let o=1;o"||o==="<="||o===">="?Tp(u[1],u[2],o):o==="any"?(h=u.slice(1),["any"].concat(h.map(zh))):o==="all"?["all"].concat(u.slice(1).map(zh)):o==="none"?["all"].concat(u.slice(1).map(zh).map(Fh)):o==="in"?$m(u[1],u.slice(2)):o==="!in"?Fh($m(u[1],u.slice(2))):o==="has"?Wm(u[1]):o==="!has"?Fh(Wm(u[1])):o!=="within"||u;var h}function Tp(u,o,h){switch(u){case"$type":return[`filter-type-${h}`,o];case"$id":return[`filter-id-${h}`,o];default:return[`filter-${h}`,u,o]}}function $m(u,o){if(o.length===0)return!1;switch(u){case"$type":return["filter-type-in",["literal",o]];case"$id":return["filter-id-in",["literal",o]];default:return o.length>200&&!o.some(h=>typeof h!=typeof o[0])?["filter-in-large",u,["literal",o.sort(qm)]]:["filter-in-small",u,["literal",o]]}}function Wm(u){switch(u){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",u]}}function Fh(u){return["!",u]}function Lp(u){const o=typeof u;if(o==="number"||o==="boolean"||o==="string"||u==null)return JSON.stringify(u);if(Array.isArray(u)){let _="[";for(const x of u)_+=`${Lp(x)},`;return`${_}]`}const h=Object.keys(u).sort();let p="{";for(let _=0;_p.maximum?[new st(o,h,`${h} is greater than the maximum value ${p.maximum}`)]:[]}function Hm(u){const o=u.valueSpec,h=Rr(u.value.type);let p,_,x,w={};const I=h!=="categorical"&&u.value.property===void 0,P=!I,k=kn(u.value.stops)==="array"&&kn(u.value.stops[0])==="array"&&kn(u.value.stops[0][0])==="object",N=uo({key:u.key,value:u.value,valueSpec:u.styleSpec.function,validateSpec:u.validateSpec,style:u.style,styleSpec:u.styleSpec,objectElementValidators:{stops:function(H){if(h==="identity")return[new st(H.key,H.value,'identity function may not have a "stops" property')];let Y=[];const te=H.value;return Y=Y.concat(Pp({key:H.key,value:te,valueSpec:H.valueSpec,validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec,arrayElementValidator:B})),kn(te)==="array"&&te.length===0&&Y.push(new st(H.key,te,"array must have at least one stop")),Y},default:function(H){return H.validateSpec({key:H.key,value:H.value,valueSpec:o,validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec})}}});return h==="identity"&&I&&N.push(new st(u.key,u.value,'missing required property "property"')),h==="identity"||u.value.stops||N.push(new st(u.key,u.value,'missing required property "stops"')),h==="exponential"&&u.valueSpec.expression&&!Ep(u.valueSpec)&&N.push(new st(u.key,u.value,"exponential functions not supported")),u.styleSpec.$version>=8&&(P&&!wu(u.valueSpec)?N.push(new st(u.key,u.value,"property functions not supported")):I&&!Vm(u.valueSpec)&&N.push(new st(u.key,u.value,"zoom functions not supported"))),h!=="categorical"&&!k||u.value.property!==void 0||N.push(new st(u.key,u.value,'"property" property is required')),N;function B(H){let Y=[];const te=H.value,le=H.key;if(kn(te)!=="array")return[new st(le,te,`array expected, ${kn(te)} found`)];if(te.length!==2)return[new st(le,te,`array length 2 expected, length ${te.length} found`)];if(k){if(kn(te[0])!=="object")return[new st(le,te,`object expected, ${kn(te[0])} found`)];if(te[0].zoom===void 0)return[new st(le,te,"object stop key must have zoom")];if(te[0].value===void 0)return[new st(le,te,"object stop key must have value")];if(x&&x>Rr(te[0].zoom))return[new st(le,te[0].zoom,"stop zoom values must appear in ascending order")];Rr(te[0].zoom)!==x&&(x=Rr(te[0].zoom),_=void 0,w={}),Y=Y.concat(uo({key:`${le}[0]`,value:te[0],valueSpec:{zoom:{}},validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec,objectElementValidators:{zoom:Bh,value:$}}))}else Y=Y.concat($({key:`${le}[0]`,value:te[0],valueSpec:{},validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec},te));return rr(il(te[1]))?Y.concat([new st(`${le}[1]`,te[1],"expressions are not allowed in function stops.")]):Y.concat(H.validateSpec({key:`${le}[1]`,value:te[1],valueSpec:o,validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec}))}function $(H,Y){const te=kn(H.value),le=Rr(H.value),ge=H.value!==null?H.value:Y;if(p){if(te!==p)return[new st(H.key,ge,`${te} stop domain type must match previous stop domain type ${p}`)]}else p=te;if(te!=="number"&&te!=="string"&&te!=="boolean")return[new st(H.key,ge,"stop domain value must be a number, string, or boolean")];if(te!=="number"&&h!=="categorical"){let De=`number expected, ${te} found`;return wu(o)&&h===void 0&&(De+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new st(H.key,ge,De)]}return h!=="categorical"||te!=="number"||isFinite(le)&&Math.floor(le)===le?h!=="categorical"&&te==="number"&&_!==void 0&&le<_?[new st(H.key,ge,"stop domain values must appear in ascending order")]:(_=le,h==="categorical"&&le in w?[new st(H.key,ge,"stop domain values must be unique")]:(w[le]=!0,[])):[new st(H.key,ge,`integer expected, found ${le}`)]}}function ol(u){const o=(u.expressionContext==="property"?Gm:Bl)(il(u.value),u.valueSpec);if(o.result==="error")return o.value.map(p=>new st(`${u.key}${p.key}`,u.value,p.message));const h=o.value.expression||o.value._styleExpression.expression;if(u.expressionContext==="property"&&u.propertyKey==="text-font"&&!h.outputDefined())return[new st(u.key,u.value,`Invalid data expression for "${u.propertyKey}". Output values must be contained as literals within the expression.`)];if(u.expressionContext==="property"&&u.propertyType==="layout"&&!bc(h))return[new st(u.key,u.value,'"feature-state" data expressions are not supported with layout properties.')];if(u.expressionContext==="filter"&&!bc(h))return[new st(u.key,u.value,'"feature-state" data expressions are not supported with filters.')];if(u.expressionContext&&u.expressionContext.indexOf("cluster")===0){if(!xc(h,["zoom","feature-state"]))return[new st(u.key,u.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(u.expressionContext==="cluster-initial"&&!Sh(h))return[new st(u.key,u.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function sl(u){const o=u.key,h=u.value,p=u.valueSpec,_=[];return Array.isArray(p.values)?p.values.indexOf(Rr(h))===-1&&_.push(new st(o,h,`expected one of [${p.values.join(", ")}], ${JSON.stringify(h)} found`)):Object.keys(p.values).indexOf(Rr(h))===-1&&_.push(new st(o,h,`expected one of [${Object.keys(p.values).join(", ")}], ${JSON.stringify(h)} found`)),_}function Su(u){return Rh(il(u.value))?ol(as({},u,{expressionContext:"filter",valueSpec:{value:"boolean"}})):Mp(u)}function Mp(u){const o=u.value,h=u.key;if(kn(o)!=="array")return[new st(h,o,`array expected, ${kn(o)} found`)];const p=u.styleSpec;let _,x=[];if(o.length<1)return[new st(h,o,"filter array must have at least 1 element")];switch(x=x.concat(sl({key:`${h}[0]`,value:o[0],valueSpec:p.filter_operator,style:u.style,styleSpec:u.styleSpec})),Rr(o[0])){case"<":case"<=":case">":case">=":o.length>=2&&Rr(o[1])==="$type"&&x.push(new st(h,o,`"$type" cannot be use with operator "${o[0]}"`));case"==":case"!=":o.length!==3&&x.push(new st(h,o,`filter array for operator "${o[0]}" must have 3 elements`));case"in":case"!in":o.length>=2&&(_=kn(o[1]),_!=="string"&&x.push(new st(`${h}[1]`,o[1],`string expected, ${_} found`)));for(let w=2;w{k in h&&o.push(new st(p,h[k],`"${k}" is prohibited for ref layers`))}),_.layers.forEach(k=>{Rr(k.id)===I&&(P=k)}),P?P.ref?o.push(new st(p,h.ref,"ref cannot reference another ref layer")):w=Rr(P.type):o.push(new st(p,h.ref,`ref layer "${I}" not found`))}else if(w!=="background")if(h.source){const P=_.sources&&_.sources[h.source],k=P&&Rr(P.type);P?k==="vector"&&w==="raster"?o.push(new st(p,h.source,`layer "${h.id}" requires a raster source`)):k!=="raster-dem"&&w==="hillshade"?o.push(new st(p,h.source,`layer "${h.id}" requires a raster-dem source`)):k==="raster"&&w!=="raster"?o.push(new st(p,h.source,`layer "${h.id}" requires a vector source`)):k!=="vector"||h["source-layer"]?k==="raster-dem"&&w!=="hillshade"?o.push(new st(p,h.source,"raster-dem source can only be used with layer type 'hillshade'.")):w!=="line"||!h.paint||!h.paint["line-gradient"]||k==="geojson"&&P.lineMetrics||o.push(new st(p,h,`layer "${h.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):o.push(new st(p,h,`layer "${h.id}" must specify a "source-layer"`)):o.push(new st(p,h.source,`source "${h.source}" not found`))}else o.push(new st(p,h,'missing required property "source"'));return o=o.concat(uo({key:p,value:h,valueSpec:x.layer,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,objectElementValidators:{"*":()=>[],type:()=>u.validateSpec({key:`${p}.type`,value:h.type,valueSpec:x.layer.type,style:u.style,styleSpec:u.styleSpec,validateSpec:u.validateSpec,object:h,objectKey:"type"}),filter:Su,layout:P=>uo({layer:h,key:P.key,value:P.value,style:P.style,styleSpec:P.styleSpec,validateSpec:P.validateSpec,objectElementValidators:{"*":k=>kp(as({layerType:w},k))}}),paint:P=>uo({layer:h,key:P.key,value:P.value,style:P.style,styleSpec:P.styleSpec,validateSpec:P.validateSpec,objectElementValidators:{"*":k=>Ap(as({layerType:w},k))}})}})),o}function Vl(u){const o=u.value,h=u.key,p=kn(o);return p!=="string"?[new st(h,o,`string expected, ${p} found`)]:[]}const Xm={promoteId:function({key:u,value:o}){if(kn(o)==="string")return Vl({key:u,value:o});{const h=[];for(const p in o)h.push(...Vl({key:`${u}.${p}`,value:o[p]}));return h}}};function Ym(u){const o=u.value,h=u.key,p=u.styleSpec,_=u.style,x=u.validateSpec;if(!o.type)return[new st(h,o,'"type" is required')];const w=Rr(o.type);let I;switch(w){case"vector":case"raster":return I=uo({key:h,value:o,valueSpec:p[`source_${w.replace("-","_")}`],style:u.style,styleSpec:p,objectElementValidators:Xm,validateSpec:x}),I;case"raster-dem":return I=function(P){var k;const N=(k=P.sourceName)!==null&&k!==void 0?k:"",B=P.value,$=P.styleSpec,H=$.source_raster_dem,Y=P.style;let te=[];const le=kn(B);if(B===void 0)return te;if(le!=="object")return te.push(new st("source_raster_dem",B,`object expected, ${le} found`)),te;const ge=Rr(B.encoding)==="custom",De=["redFactor","greenFactor","blueFactor","baseShift"],we=P.value.encoding?`"${P.value.encoding}"`:"Default";for(const Pe in B)!ge&&De.includes(Pe)?te.push(new st(Pe,B[Pe],`In "${N}": "${Pe}" is only valid when "encoding" is set to "custom". ${we} encoding found`)):H[Pe]?te=te.concat(P.validateSpec({key:Pe,value:B[Pe],valueSpec:H[Pe],validateSpec:P.validateSpec,style:Y,styleSpec:$})):te.push(new st(Pe,B[Pe],`unknown property "${Pe}"`));return te}({sourceName:h,value:o,style:u.style,styleSpec:p,validateSpec:x}),I;case"geojson":if(I=uo({key:h,value:o,valueSpec:p.source_geojson,style:_,styleSpec:p,validateSpec:x,objectElementValidators:Xm}),o.cluster)for(const P in o.clusterProperties){const[k,N]=o.clusterProperties[P],B=typeof k=="string"?[k,["accumulated"],["get",P]]:k;I.push(...ol({key:`${h}.${P}.map`,value:N,validateSpec:x,expressionContext:"cluster-map"})),I.push(...ol({key:`${h}.${P}.reduce`,value:B,validateSpec:x,expressionContext:"cluster-reduce"}))}return I;case"video":return uo({key:h,value:o,valueSpec:p.source_video,style:_,validateSpec:x,styleSpec:p});case"image":return uo({key:h,value:o,valueSpec:p.source_image,style:_,validateSpec:x,styleSpec:p});case"canvas":return[new st(h,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return sl({key:`${h}.type`,value:o.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:_,validateSpec:x,styleSpec:p})}}function Km(u){const o=u.value,h=u.styleSpec,p=h.light,_=u.style;let x=[];const w=kn(o);if(o===void 0)return x;if(w!=="object")return x=x.concat([new st("light",o,`object expected, ${w} found`)]),x;for(const I in o){const P=I.match(/^(.*)-transition$/);x=x.concat(P&&p[P[1]]&&p[P[1]].transition?u.validateSpec({key:I,value:o[I],valueSpec:h.transition,validateSpec:u.validateSpec,style:_,styleSpec:h}):p[I]?u.validateSpec({key:I,value:o[I],valueSpec:p[I],validateSpec:u.validateSpec,style:_,styleSpec:h}):[new st(I,o[I],`unknown property "${I}"`)])}return x}function Jm(u){const o=u.value,h=u.styleSpec,p=h.sky,_=u.style,x=kn(o);if(o===void 0)return[];if(x!=="object")return[new st("sky",o,`object expected, ${x} found`)];let w=[];for(const I in o)w=w.concat(p[I]?Qs({key:I,value:o[I],valueSpec:p[I],style:_,styleSpec:h}):[new st(I,o[I],`unknown property "${I}"`)]);return w}function Cc(u){const o=u.value,h=u.styleSpec,p=h.terrain,_=u.style;let x=[];const w=kn(o);if(o===void 0)return x;if(w!=="object")return x=x.concat([new st("terrain",o,`object expected, ${w} found`)]),x;for(const I in o)x=x.concat(p[I]?u.validateSpec({key:I,value:o[I],valueSpec:p[I],validateSpec:u.validateSpec,style:_,styleSpec:h}):[new st(I,o[I],`unknown property "${I}"`)]);return x}function Tc(u){let o=[];const h=u.value,p=u.key;if(Array.isArray(h)){const _=[],x=[];for(const w in h)h[w].id&&_.includes(h[w].id)&&o.push(new st(p,h,`all the sprites' ids must be unique, but ${h[w].id} is duplicated`)),_.push(h[w].id),h[w].url&&x.includes(h[w].url)&&o.push(new st(p,h,`all the sprites' URLs must be unique, but ${h[w].url} is duplicated`)),x.push(h[w].url),o=o.concat(uo({key:`${p}[${w}]`,value:h[w],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:u.validateSpec}));return o}return Vl({key:p,value:h})}const So={"*":()=>[],array:Pp,boolean:function(u){const o=u.value,h=u.key,p=kn(o);return p!=="boolean"?[new st(h,o,`boolean expected, ${p} found`)]:[]},number:Bh,color:function(u){const o=u.key,h=u.value,p=kn(h);return p!=="string"?[new st(o,h,`color expected, ${p} found`)]:Wn.parse(String(h))?[]:[new st(o,h,`color expected, "${h}" found`)]},constants:Zm,enum:sl,filter:Su,function:Hm,layer:Ic,object:uo,source:Ym,light:Km,sky:Jm,terrain:Cc,string:Vl,formatted:function(u){return Vl(u).length===0?[]:ol(u)},resolvedImage:function(u){return Vl(u).length===0?[]:ol(u)},padding:function(u){const o=u.key,h=u.value;if(kn(h)==="array"){if(h.length<1||h.length>4)return[new st(o,h,`padding requires 1 to 4 values; ${h.length} values found`)];const p={type:"number"};let _=[];for(let x=0;x[]}})),u.constants&&(h=h.concat(Zm({key:"constants",value:u.constants,style:u,styleSpec:o,validateSpec:Qs}))),Eu(h)}function ea(u){return function(o){return u({...o,validateSpec:Qs})}}function Eu(u){return[].concat(u).sort((o,h)=>o.line-h.line)}function Ls(u){return function(...o){return Eu(u.apply(this,o))}}Ts.source=Ls(ea(Ym)),Ts.sprite=Ls(ea(Tc)),Ts.glyphs=Ls(ea(Dp)),Ts.light=Ls(ea(Km)),Ts.sky=Ls(ea(Jm)),Ts.terrain=Ls(ea(Cc)),Ts.layer=Ls(ea(Ic)),Ts.filter=Ls(ea(Su)),Ts.paintProperty=Ls(ea(Ap)),Ts.layoutProperty=Ls(ea(kp));const Ul=Ts,Uy=Ul.light,Rp=Ul.paintProperty,Gy=Ul.layoutProperty;function Iu(u,o){let h=!1;if(o&&o.length)for(const p of o)u.fire(new It(new Error(p.message))),h=!0;return h}class Lc{constructor(o,h,p){const _=this.cells=[];if(o instanceof ArrayBuffer){this.arrayBuffer=o;const w=new Int32Array(this.arrayBuffer);o=w[0],this.d=(h=w[1])+2*(p=w[2]);for(let P=0;P=B[Y+0]&&_>=B[Y+1])?(I[H]=!0,w.push(N[H])):I[H]=!1}}}}_forEachCell(o,h,p,_,x,w,I,P){const k=this._convertToCellCoord(o),N=this._convertToCellCoord(h),B=this._convertToCellCoord(p),$=this._convertToCellCoord(_);for(let H=k;H<=B;H++)for(let Y=N;Y<=$;Y++){const te=this.d*Y+H;if((!P||P(this._convertFromCellCoord(H),this._convertFromCellCoord(Y),this._convertFromCellCoord(H+1),this._convertFromCellCoord(Y+1)))&&x.call(this,o,h,p,_,te,w,I,P))return}}_convertFromCellCoord(o){return(o-this.padding)/this.scale}_convertToCellCoord(o){return Math.max(0,Math.min(this.d-1,Math.floor(o*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const o=this.cells,h=3+this.cells.length+1+1;let p=0;for(let w=0;w=0)continue;const w=u[x];_[x]=ta[p].shallow.indexOf(x)>=0?w:Cu(w,o)}u instanceof Error&&(_.message=u.message)}if(_.$name)throw new Error("$name property is reserved for worker serialization logic.");return p!=="Object"&&(_.$name=p),_}throw new Error("can't serialize object of type "+typeof u)}function Tu(u){if(u==null||typeof u=="boolean"||typeof u=="number"||typeof u=="string"||u instanceof Boolean||u instanceof Number||u instanceof String||u instanceof Date||u instanceof RegExp||u instanceof Blob||u instanceof Error||Uh(u)||Rt(u)||ArrayBuffer.isView(u)||u instanceof ImageData)return u;if(Array.isArray(u))return u.map(Tu);if(typeof u=="object"){const o=u.$name||"Object";if(!ta[o])throw new Error(`can't deserialize unregistered class ${o}`);const{klass:h}=ta[o];if(!h)throw new Error(`can't deserialize unregistered class ${o}`);if(h.deserialize)return h.deserialize(u);const p=Object.create(h.prototype);for(const _ of Object.keys(u)){if(_==="$name")continue;const x=u[_];p[_]=ta[o].shallow.indexOf(_)>=0?x:Tu(x)}return p}throw new Error("can't deserialize object of type "+typeof u)}class Qm{constructor(){this.first=!0}update(o,h){const p=Math.floor(o);return this.first?(this.first=!1,this.lastIntegerZoom=p,this.lastIntegerZoomTime=0,this.lastZoom=o,this.lastFloorZoom=p,!0):(this.lastFloorZoom>p?(this.lastIntegerZoom=p+1,this.lastIntegerZoomTime=h):this.lastFloorZoomu>=128&&u<=255,Arabic:u=>u>=1536&&u<=1791,"Arabic Supplement":u=>u>=1872&&u<=1919,"Arabic Extended-A":u=>u>=2208&&u<=2303,"Hangul Jamo":u=>u>=4352&&u<=4607,"Unified Canadian Aboriginal Syllabics":u=>u>=5120&&u<=5759,Khmer:u=>u>=6016&&u<=6143,"Unified Canadian Aboriginal Syllabics Extended":u=>u>=6320&&u<=6399,"General Punctuation":u=>u>=8192&&u<=8303,"Letterlike Symbols":u=>u>=8448&&u<=8527,"Number Forms":u=>u>=8528&&u<=8591,"Miscellaneous Technical":u=>u>=8960&&u<=9215,"Control Pictures":u=>u>=9216&&u<=9279,"Optical Character Recognition":u=>u>=9280&&u<=9311,"Enclosed Alphanumerics":u=>u>=9312&&u<=9471,"Geometric Shapes":u=>u>=9632&&u<=9727,"Miscellaneous Symbols":u=>u>=9728&&u<=9983,"Miscellaneous Symbols and Arrows":u=>u>=11008&&u<=11263,"CJK Radicals Supplement":u=>u>=11904&&u<=12031,"Kangxi Radicals":u=>u>=12032&&u<=12255,"Ideographic Description Characters":u=>u>=12272&&u<=12287,"CJK Symbols and Punctuation":u=>u>=12288&&u<=12351,Hiragana:u=>u>=12352&&u<=12447,Katakana:u=>u>=12448&&u<=12543,Bopomofo:u=>u>=12544&&u<=12591,"Hangul Compatibility Jamo":u=>u>=12592&&u<=12687,Kanbun:u=>u>=12688&&u<=12703,"Bopomofo Extended":u=>u>=12704&&u<=12735,"CJK Strokes":u=>u>=12736&&u<=12783,"Katakana Phonetic Extensions":u=>u>=12784&&u<=12799,"Enclosed CJK Letters and Months":u=>u>=12800&&u<=13055,"CJK Compatibility":u=>u>=13056&&u<=13311,"CJK Unified Ideographs Extension A":u=>u>=13312&&u<=19903,"Yijing Hexagram Symbols":u=>u>=19904&&u<=19967,"CJK Unified Ideographs":u=>u>=19968&&u<=40959,"Yi Syllables":u=>u>=40960&&u<=42127,"Yi Radicals":u=>u>=42128&&u<=42191,"Hangul Jamo Extended-A":u=>u>=43360&&u<=43391,"Hangul Syllables":u=>u>=44032&&u<=55215,"Hangul Jamo Extended-B":u=>u>=55216&&u<=55295,"Private Use Area":u=>u>=57344&&u<=63743,"CJK Compatibility Ideographs":u=>u>=63744&&u<=64255,"Arabic Presentation Forms-A":u=>u>=64336&&u<=65023,"Vertical Forms":u=>u>=65040&&u<=65055,"CJK Compatibility Forms":u=>u>=65072&&u<=65103,"Small Form Variants":u=>u>=65104&&u<=65135,"Arabic Presentation Forms-B":u=>u>=65136&&u<=65279,"Halfwidth and Fullwidth Forms":u=>u>=65280&&u<=65519};function Lu(u){for(const o of u)if(Gh(o.charCodeAt(0)))return!0;return!1}function eg(u){for(const o of u)if(!tg(o.charCodeAt(0)))return!1;return!0}function tg(u){return!(vt.Arabic(u)||vt["Arabic Supplement"](u)||vt["Arabic Extended-A"](u)||vt["Arabic Presentation Forms-A"](u)||vt["Arabic Presentation Forms-B"](u))}function Gh(u){return!(u!==746&&u!==747&&(u<4352||!(vt["Bopomofo Extended"](u)||vt.Bopomofo(u)||vt["CJK Compatibility Forms"](u)&&!(u>=65097&&u<=65103)||vt["CJK Compatibility Ideographs"](u)||vt["CJK Compatibility"](u)||vt["CJK Radicals Supplement"](u)||vt["CJK Strokes"](u)||!(!vt["CJK Symbols and Punctuation"](u)||u>=12296&&u<=12305||u>=12308&&u<=12319||u===12336)||vt["CJK Unified Ideographs Extension A"](u)||vt["CJK Unified Ideographs"](u)||vt["Enclosed CJK Letters and Months"](u)||vt["Hangul Compatibility Jamo"](u)||vt["Hangul Jamo Extended-A"](u)||vt["Hangul Jamo Extended-B"](u)||vt["Hangul Jamo"](u)||vt["Hangul Syllables"](u)||vt.Hiragana(u)||vt["Ideographic Description Characters"](u)||vt.Kanbun(u)||vt["Kangxi Radicals"](u)||vt["Katakana Phonetic Extensions"](u)||vt.Katakana(u)&&u!==12540||!(!vt["Halfwidth and Fullwidth Forms"](u)||u===65288||u===65289||u===65293||u>=65306&&u<=65310||u===65339||u===65341||u===65343||u>=65371&&u<=65503||u===65507||u>=65512&&u<=65519)||!(!vt["Small Form Variants"](u)||u>=65112&&u<=65118||u>=65123&&u<=65126)||vt["Unified Canadian Aboriginal Syllabics"](u)||vt["Unified Canadian Aboriginal Syllabics Extended"](u)||vt["Vertical Forms"](u)||vt["Yijing Hexagram Symbols"](u)||vt["Yi Syllables"](u)||vt["Yi Radicals"](u))))}function Np(u){return!(Gh(u)||function(o){return!!(vt["Latin-1 Supplement"](o)&&(o===167||o===169||o===174||o===177||o===188||o===189||o===190||o===215||o===247)||vt["General Punctuation"](o)&&(o===8214||o===8224||o===8225||o===8240||o===8241||o===8251||o===8252||o===8258||o===8263||o===8264||o===8265||o===8273)||vt["Letterlike Symbols"](o)||vt["Number Forms"](o)||vt["Miscellaneous Technical"](o)&&(o>=8960&&o<=8967||o>=8972&&o<=8991||o>=8996&&o<=9e3||o===9003||o>=9085&&o<=9114||o>=9150&&o<=9165||o===9167||o>=9169&&o<=9179||o>=9186&&o<=9215)||vt["Control Pictures"](o)&&o!==9251||vt["Optical Character Recognition"](o)||vt["Enclosed Alphanumerics"](o)||vt["Geometric Shapes"](o)||vt["Miscellaneous Symbols"](o)&&!(o>=9754&&o<=9759)||vt["Miscellaneous Symbols and Arrows"](o)&&(o>=11026&&o<=11055||o>=11088&&o<=11097||o>=11192&&o<=11243)||vt["CJK Symbols and Punctuation"](o)||vt.Katakana(o)||vt["Private Use Area"](o)||vt["CJK Compatibility Forms"](o)||vt["Small Form Variants"](o)||vt["Halfwidth and Fullwidth Forms"](o)||o===8734||o===8756||o===8757||o>=9984&&o<=10087||o>=10102&&o<=10131||o===65532||o===65533)}(u))}function jh(u){return u>=1424&&u<=2303||vt["Arabic Presentation Forms-A"](u)||vt["Arabic Presentation Forms-B"](u)}function ng(u,o){return!(!o&&jh(u)||u>=2304&&u<=3583||u>=3840&&u<=4255||vt.Khmer(u))}function jy(u){for(const o of u)if(jh(o.charCodeAt(0)))return!0;return!1}const al=new class{constructor(){this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null}setState(u){this.pluginStatus=u.pluginStatus,this.pluginURL=u.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(u){this.applyArabicShaping=u.applyArabicShaping,this.processBidirectionalText=u.processBidirectionalText,this.processStyledBidirectionalText=u.processStyledBidirectionalText}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getPluginURL(){return this.pluginURL}getRTLTextPluginStatus(){return this.pluginStatus}};class yr{constructor(o,h){this.zoom=o,h?(this.now=h.now,this.fadeDuration=h.fadeDuration,this.zoomHistory=h.zoomHistory,this.transition=h.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Qm,this.transition={})}isSupportedScript(o){return function(h,p){for(const _ of h)if(!ng(_.charCodeAt(0),p))return!1;return!0}(o,al.getRTLTextPluginStatus()==="loaded")}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const o=this.zoom,h=o-Math.floor(o),p=this.crossFadingFactor();return o>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:h+(1-h)*p}:{fromScale:.5,toScale:1,t:1-(1-p)*h}}}class Pc{constructor(o,h){this.property=o,this.value=h,this.expression=function(p,_){if(Mh(p))return new kh(p,_);if(rr(p)){const x=Gm(p,_);if(x.result==="error")throw new Error(x.value.map(w=>`${w.key}: ${w.message}`).join(", "));return x.value}{let x=p;return _.type==="color"&&typeof p=="string"?x=Wn.parse(p):_.type!=="padding"||typeof p!="number"&&!Array.isArray(p)?_.type==="variableAnchorOffsetCollection"&&Array.isArray(p)&&(x=us.parse(p)):x=wo.parse(p),{kind:"constant",evaluate:()=>x}}}(h===void 0?o.specification.default:h,o.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(o,h,p){return this.property.possiblyEvaluate(this,o,h,p)}}class qh{constructor(o){this.property=o,this.value=new Pc(o,void 0)}transitioned(o,h){return new rg(this.property,this.value,h,re({},o.transition,this.transition),o.now)}untransitioned(){return new rg(this.property,this.value,null,{},0)}}class Op{constructor(o){this._properties=o,this._values=Object.create(o.defaultTransitionablePropertyValues)}getValue(o){return me(this._values[o].value.value)}setValue(o,h){Object.prototype.hasOwnProperty.call(this._values,o)||(this._values[o]=new qh(this._values[o].property)),this._values[o].value=new Pc(this._values[o].property,h===null?void 0:me(h))}getTransition(o){return me(this._values[o].transition)}setTransition(o,h){Object.prototype.hasOwnProperty.call(this._values,o)||(this._values[o]=new qh(this._values[o].property)),this._values[o].transition=me(h)||void 0}serialize(){const o={};for(const h of Object.keys(this._values)){const p=this.getValue(h);p!==void 0&&(o[h]=p);const _=this.getTransition(h);_!==void 0&&(o[`${h}-transition`]=_)}return o}transitioned(o,h){const p=new ig(this._properties);for(const _ of Object.keys(this._values))p._values[_]=this._values[_].transitioned(o,h._values[_]);return p}untransitioned(){const o=new ig(this._properties);for(const h of Object.keys(this._values))o._values[h]=this._values[h].untransitioned();return o}}class rg{constructor(o,h,p,_,x){this.property=o,this.value=h,this.begin=x+_.delay||0,this.end=this.begin+_.duration||0,o.specification.transition&&(_.delay||_.duration)&&(this.prior=p)}possiblyEvaluate(o,h,p){const _=o.now||0,x=this.value.possiblyEvaluate(o,h,p),w=this.prior;if(w){if(_>this.end)return this.prior=null,x;if(this.value.isDataDriven())return this.prior=null,x;if(_=1)return 1;const k=P*P,N=k*P;return 4*(P<.5?N:3*(P-k)+N-.75)}(I))}}return x}}class ig{constructor(o){this._properties=o,this._values=Object.create(o.defaultTransitioningPropertyValues)}possiblyEvaluate(o,h,p){const _=new Mc(this._properties);for(const x of Object.keys(this._values))_._values[x]=this._values[x].possiblyEvaluate(o,h,p);return _}hasTransition(){for(const o of Object.keys(this._values))if(this._values[o].prior)return!0;return!1}}class og{constructor(o){this._properties=o,this._values=Object.create(o.defaultPropertyValues)}hasValue(o){return this._values[o].value!==void 0}getValue(o){return me(this._values[o].value)}setValue(o,h){this._values[o]=new Pc(this._values[o].property,h===null?void 0:me(h))}serialize(){const o={};for(const h of Object.keys(this._values)){const p=this.getValue(h);p!==void 0&&(o[h]=p)}return o}possiblyEvaluate(o,h,p){const _=new Mc(this._properties);for(const x of Object.keys(this._values))_._values[x]=this._values[x].possiblyEvaluate(o,h,p);return _}}class Ps{constructor(o,h,p){this.property=o,this.value=h,this.parameters=p}isConstant(){return this.value.kind==="constant"}constantOr(o){return this.value.kind==="constant"?this.value.value:o}evaluate(o,h,p,_){return this.property.evaluate(this.value,this.parameters,o,h,p,_)}}class Mc{constructor(o){this._properties=o,this._values=Object.create(o.defaultPossiblyEvaluatedValues)}get(o){return this._values[o]}}class Dt{constructor(o){this.specification=o}possiblyEvaluate(o,h){if(o.isDataDriven())throw new Error("Value should not be data driven");return o.expression.evaluate(h)}interpolate(o,h,p){const _=lo[this.specification.type];return _?_(o,h,p):o}}class Ut{constructor(o,h){this.specification=o,this.overrides=h}possiblyEvaluate(o,h,p,_){return new Ps(this,o.expression.kind==="constant"||o.expression.kind==="camera"?{kind:"constant",value:o.expression.evaluate(h,null,{},p,_)}:o.expression,h)}interpolate(o,h,p){if(o.value.kind!=="constant"||h.value.kind!=="constant")return o;if(o.value.value===void 0||h.value.value===void 0)return new Ps(this,{kind:"constant",value:void 0},o.parameters);const _=lo[this.specification.type];if(_){const x=_(o.value.value,h.value.value,p);return new Ps(this,{kind:"constant",value:x},o.parameters)}return o}evaluate(o,h,p,_,x,w){return o.kind==="constant"?o.value:o.evaluate(h,p,_,x,w)}}class $h extends Ut{possiblyEvaluate(o,h,p,_){if(o.value===void 0)return new Ps(this,{kind:"constant",value:void 0},h);if(o.expression.kind==="constant"){const x=o.expression.evaluate(h,null,{},p,_),w=o.property.specification.type==="resolvedImage"&&typeof x!="string"?x.name:x,I=this._calculate(w,w,w,h);return new Ps(this,{kind:"constant",value:I},h)}if(o.expression.kind==="camera"){const x=this._calculate(o.expression.evaluate({zoom:h.zoom-1}),o.expression.evaluate({zoom:h.zoom}),o.expression.evaluate({zoom:h.zoom+1}),h);return new Ps(this,{kind:"constant",value:x},h)}return new Ps(this,o.expression,h)}evaluate(o,h,p,_,x,w){if(o.kind==="source"){const I=o.evaluate(h,p,_,x,w);return this._calculate(I,I,I,h)}return o.kind==="composite"?this._calculate(o.evaluate({zoom:Math.floor(h.zoom)-1},p,_),o.evaluate({zoom:Math.floor(h.zoom)},p,_),o.evaluate({zoom:Math.floor(h.zoom)+1},p,_),h):o.value}_calculate(o,h,p,_){return _.zoom>_.zoomHistory.lastIntegerZoom?{from:o,to:h}:{from:p,to:h}}interpolate(o){return o}}class Ac{constructor(o){this.specification=o}possiblyEvaluate(o,h,p,_){if(o.value!==void 0){if(o.expression.kind==="constant"){const x=o.expression.evaluate(h,null,{},p,_);return this._calculate(x,x,x,h)}return this._calculate(o.expression.evaluate(new yr(Math.floor(h.zoom-1),h)),o.expression.evaluate(new yr(Math.floor(h.zoom),h)),o.expression.evaluate(new yr(Math.floor(h.zoom+1),h)),h)}}_calculate(o,h,p,_){return _.zoom>_.zoomHistory.lastIntegerZoom?{from:o,to:h}:{from:p,to:h}}interpolate(o){return o}}class zp{constructor(o){this.specification=o}possiblyEvaluate(o,h,p,_){return!!o.expression.evaluate(h,null,{},p,_)}interpolate(){return!1}}class Eo{constructor(o){this.properties=o,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const h in o){const p=o[h];p.specification.overridable&&this.overridableProperties.push(h);const _=this.defaultPropertyValues[h]=new Pc(p,void 0),x=this.defaultTransitionablePropertyValues[h]=new qh(p);this.defaultTransitioningPropertyValues[h]=x.untransitioned(),this.defaultPossiblyEvaluatedValues[h]=_.possiblyEvaluate({})}}}Et("DataDrivenProperty",Ut),Et("DataConstantProperty",Dt),Et("CrossFadedDataDrivenProperty",$h),Et("CrossFadedProperty",Ac),Et("ColorRampProperty",zp);const Fp="-transition";class Ms extends Sr{constructor(o,h){if(super(),this.id=o.id,this.type=o.type,this._featureFilter={filter:()=>!0,needGeometry:!1},o.type!=="custom"&&(this.metadata=o.metadata,this.minzoom=o.minzoom,this.maxzoom=o.maxzoom,o.type!=="background"&&(this.source=o.source,this.sourceLayer=o["source-layer"],this.filter=o.filter),h.layout&&(this._unevaluatedLayout=new og(h.layout)),h.paint)){this._transitionablePaint=new Op(h.paint);for(const p in o.paint)this.setPaintProperty(p,o.paint[p],{validate:!1});for(const p in o.layout)this.setLayoutProperty(p,o.layout[p],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Mc(h.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(o){return o==="visibility"?this.visibility:this._unevaluatedLayout.getValue(o)}setLayoutProperty(o,h,p={}){h!=null&&this._validate(Gy,`layers.${this.id}.layout.${o}`,o,h,p)||(o!=="visibility"?this._unevaluatedLayout.setValue(o,h):this.visibility=h)}getPaintProperty(o){return o.endsWith(Fp)?this._transitionablePaint.getTransition(o.slice(0,-11)):this._transitionablePaint.getValue(o)}setPaintProperty(o,h,p={}){if(h!=null&&this._validate(Rp,`layers.${this.id}.paint.${o}`,o,h,p))return!1;if(o.endsWith(Fp))return this._transitionablePaint.setTransition(o.slice(0,-11),h||void 0),!1;{const _=this._transitionablePaint._values[o],x=_.property.specification["property-type"]==="cross-faded-data-driven",w=_.value.isDataDriven(),I=_.value;this._transitionablePaint.setValue(o,h),this._handleSpecialPaintPropertyUpdate(o);const P=this._transitionablePaint._values[o].value;return P.isDataDriven()||w||x||this._handleOverridablePaintPropertyUpdate(o,I,P)}}_handleSpecialPaintPropertyUpdate(o){}_handleOverridablePaintPropertyUpdate(o,h,p){return!1}isHidden(o){return!!(this.minzoom&&o=this.maxzoom)||this.visibility==="none"}updateTransitions(o){this._transitioningPaint=this._transitionablePaint.transitioned(o,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(o,h){o.getCrossfadeParameters&&(this._crossfadeParameters=o.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(o,void 0,h)),this.paint=this._transitioningPaint.possiblyEvaluate(o,void 0,h)}serialize(){const o={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(o.layout=o.layout||{},o.layout.visibility=this.visibility),Ae(o,(h,p)=>!(h===void 0||p==="layout"&&!Object.keys(h).length||p==="paint"&&!Object.keys(h).length))}_validate(o,h,p,_,x={}){return(!x||x.validate!==!1)&&Iu(this,o.call(Ul,{key:h,layerType:this.type,objectKey:p,value:_,styleSpec:Be,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const o in this.paint._values){const h=this.paint.get(o);if(h instanceof Ps&&wu(h.property.specification)&&(h.value.kind==="source"||h.value.kind==="composite")&&h.value.isStateDependent)return!0}return!1}}const sg={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class kc{constructor(o,h){this._structArray=o,this._pos1=h*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class Nr{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(o,h){return o._trim(),h&&(o.isTransferred=!0,h.push(o.arrayBuffer)),{length:o.length,arrayBuffer:o.arrayBuffer}}static deserialize(o){const h=Object.create(this.prototype);return h.arrayBuffer=o.arrayBuffer,h.length=o.length,h.capacity=o.arrayBuffer.byteLength/h.bytesPerElement,h._refreshViews(),h}_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(o){this.reserve(o),this.length=o}reserve(o){if(o>this.capacity){this.capacity=Math.max(o,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const h=this.uint8;this._refreshViews(),h&&this.uint8.set(h)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function Hr(u,o=1){let h=0,p=0;return{members:u.map(_=>{const x=sg[_.type].BYTES_PER_ELEMENT,w=h=ag(h,Math.max(o,x)),I=_.components||1;return p=Math.max(p,x),h+=x*I,{name:_.name,type:_.type,components:I,offset:w}}),size:ag(h,Math.max(p,o)),alignment:o}}function ag(u,o){return Math.ceil(u/o)*o}class Dc extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,h){const p=this.length;return this.resize(p+1),this.emplace(p,o,h)}emplace(o,h,p){const _=2*o;return this.int16[_+0]=h,this.int16[_+1]=p,o}}Dc.prototype.bytesPerElement=4,Et("StructArrayLayout2i4",Dc);class Aa extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,h,p){const _=this.length;return this.resize(_+1),this.emplace(_,o,h,p)}emplace(o,h,p,_){const x=3*o;return this.int16[x+0]=h,this.int16[x+1]=p,this.int16[x+2]=_,o}}Aa.prototype.bytesPerElement=6,Et("StructArrayLayout3i6",Aa);class Bp extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,h,p,_){const x=this.length;return this.resize(x+1),this.emplace(x,o,h,p,_)}emplace(o,h,p,_,x){const w=4*o;return this.int16[w+0]=h,this.int16[w+1]=p,this.int16[w+2]=_,this.int16[w+3]=x,o}}Bp.prototype.bytesPerElement=8,Et("StructArrayLayout4i8",Bp);class Vp extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,h,p,_,x,w){const I=this.length;return this.resize(I+1),this.emplace(I,o,h,p,_,x,w)}emplace(o,h,p,_,x,w,I){const P=6*o;return this.int16[P+0]=h,this.int16[P+1]=p,this.int16[P+2]=_,this.int16[P+3]=x,this.int16[P+4]=w,this.int16[P+5]=I,o}}Vp.prototype.bytesPerElement=12,Et("StructArrayLayout2i4i12",Vp);class Up extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,h,p,_,x,w){const I=this.length;return this.resize(I+1),this.emplace(I,o,h,p,_,x,w)}emplace(o,h,p,_,x,w,I){const P=4*o,k=8*o;return this.int16[P+0]=h,this.int16[P+1]=p,this.uint8[k+4]=_,this.uint8[k+5]=x,this.uint8[k+6]=w,this.uint8[k+7]=I,o}}Up.prototype.bytesPerElement=8,Et("StructArrayLayout2i4ub8",Up);class Rc extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,h){const p=this.length;return this.resize(p+1),this.emplace(p,o,h)}emplace(o,h,p){const _=2*o;return this.float32[_+0]=h,this.float32[_+1]=p,o}}Rc.prototype.bytesPerElement=8,Et("StructArrayLayout2f8",Rc);class Wh extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,h,p,_,x,w,I,P,k,N){const B=this.length;return this.resize(B+1),this.emplace(B,o,h,p,_,x,w,I,P,k,N)}emplace(o,h,p,_,x,w,I,P,k,N,B){const $=10*o;return this.uint16[$+0]=h,this.uint16[$+1]=p,this.uint16[$+2]=_,this.uint16[$+3]=x,this.uint16[$+4]=w,this.uint16[$+5]=I,this.uint16[$+6]=P,this.uint16[$+7]=k,this.uint16[$+8]=N,this.uint16[$+9]=B,o}}Wh.prototype.bytesPerElement=20,Et("StructArrayLayout10ui20",Wh);class Gp extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,h,p,_,x,w,I,P,k,N,B,$){const H=this.length;return this.resize(H+1),this.emplace(H,o,h,p,_,x,w,I,P,k,N,B,$)}emplace(o,h,p,_,x,w,I,P,k,N,B,$,H){const Y=12*o;return this.int16[Y+0]=h,this.int16[Y+1]=p,this.int16[Y+2]=_,this.int16[Y+3]=x,this.uint16[Y+4]=w,this.uint16[Y+5]=I,this.uint16[Y+6]=P,this.uint16[Y+7]=k,this.int16[Y+8]=N,this.int16[Y+9]=B,this.int16[Y+10]=$,this.int16[Y+11]=H,o}}Gp.prototype.bytesPerElement=24,Et("StructArrayLayout4i4ui4i24",Gp);class jp extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,h,p){const _=this.length;return this.resize(_+1),this.emplace(_,o,h,p)}emplace(o,h,p,_){const x=3*o;return this.float32[x+0]=h,this.float32[x+1]=p,this.float32[x+2]=_,o}}jp.prototype.bytesPerElement=12,Et("StructArrayLayout3f12",jp);class ka extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(o){const h=this.length;return this.resize(h+1),this.emplace(h,o)}emplace(o,h){return this.uint32[1*o+0]=h,o}}ka.prototype.bytesPerElement=4,Et("StructArrayLayout1ul4",ka);class Zh extends Nr{_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(o,h,p,_,x,w,I,P,k){const N=this.length;return this.resize(N+1),this.emplace(N,o,h,p,_,x,w,I,P,k)}emplace(o,h,p,_,x,w,I,P,k,N){const B=10*o,$=5*o;return this.int16[B+0]=h,this.int16[B+1]=p,this.int16[B+2]=_,this.int16[B+3]=x,this.int16[B+4]=w,this.int16[B+5]=I,this.uint32[$+3]=P,this.uint16[B+8]=k,this.uint16[B+9]=N,o}}Zh.prototype.bytesPerElement=20,Et("StructArrayLayout6i1ul2ui20",Zh);class Nc extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,h,p,_,x,w){const I=this.length;return this.resize(I+1),this.emplace(I,o,h,p,_,x,w)}emplace(o,h,p,_,x,w,I){const P=6*o;return this.int16[P+0]=h,this.int16[P+1]=p,this.int16[P+2]=_,this.int16[P+3]=x,this.int16[P+4]=w,this.int16[P+5]=I,o}}Nc.prototype.bytesPerElement=12,Et("StructArrayLayout2i2i2i12",Nc);class Hh extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,h,p,_,x){const w=this.length;return this.resize(w+1),this.emplace(w,o,h,p,_,x)}emplace(o,h,p,_,x,w){const I=4*o,P=8*o;return this.float32[I+0]=h,this.float32[I+1]=p,this.float32[I+2]=_,this.int16[P+6]=x,this.int16[P+7]=w,o}}Hh.prototype.bytesPerElement=16,Et("StructArrayLayout2f1f2i16",Hh);class Oc extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,h,p,_){const x=this.length;return this.resize(x+1),this.emplace(x,o,h,p,_)}emplace(o,h,p,_,x){const w=12*o,I=3*o;return this.uint8[w+0]=h,this.uint8[w+1]=p,this.float32[I+1]=_,this.float32[I+2]=x,o}}Oc.prototype.bytesPerElement=12,Et("StructArrayLayout2ub2f12",Oc);class Xh extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,h,p){const _=this.length;return this.resize(_+1),this.emplace(_,o,h,p)}emplace(o,h,p,_){const x=3*o;return this.uint16[x+0]=h,this.uint16[x+1]=p,this.uint16[x+2]=_,o}}Xh.prototype.bytesPerElement=6,Et("StructArrayLayout3ui6",Xh);class Pu extends Nr{_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(o,h,p,_,x,w,I,P,k,N,B,$,H,Y,te,le,ge){const De=this.length;return this.resize(De+1),this.emplace(De,o,h,p,_,x,w,I,P,k,N,B,$,H,Y,te,le,ge)}emplace(o,h,p,_,x,w,I,P,k,N,B,$,H,Y,te,le,ge,De){const we=24*o,Pe=12*o,Je=48*o;return this.int16[we+0]=h,this.int16[we+1]=p,this.uint16[we+2]=_,this.uint16[we+3]=x,this.uint32[Pe+2]=w,this.uint32[Pe+3]=I,this.uint32[Pe+4]=P,this.uint16[we+10]=k,this.uint16[we+11]=N,this.uint16[we+12]=B,this.float32[Pe+7]=$,this.float32[Pe+8]=H,this.uint8[Je+36]=Y,this.uint8[Je+37]=te,this.uint8[Je+38]=le,this.uint32[Pe+10]=ge,this.int16[we+22]=De,o}}Pu.prototype.bytesPerElement=48,Et("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",Pu);class Gl extends Nr{_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(o,h,p,_,x,w,I,P,k,N,B,$,H,Y,te,le,ge,De,we,Pe,Je,et,xt,Pt,bt,yt,ht,Ct){const gt=this.length;return this.resize(gt+1),this.emplace(gt,o,h,p,_,x,w,I,P,k,N,B,$,H,Y,te,le,ge,De,we,Pe,Je,et,xt,Pt,bt,yt,ht,Ct)}emplace(o,h,p,_,x,w,I,P,k,N,B,$,H,Y,te,le,ge,De,we,Pe,Je,et,xt,Pt,bt,yt,ht,Ct,gt){const ot=32*o,Vt=16*o;return this.int16[ot+0]=h,this.int16[ot+1]=p,this.int16[ot+2]=_,this.int16[ot+3]=x,this.int16[ot+4]=w,this.int16[ot+5]=I,this.int16[ot+6]=P,this.int16[ot+7]=k,this.uint16[ot+8]=N,this.uint16[ot+9]=B,this.uint16[ot+10]=$,this.uint16[ot+11]=H,this.uint16[ot+12]=Y,this.uint16[ot+13]=te,this.uint16[ot+14]=le,this.uint16[ot+15]=ge,this.uint16[ot+16]=De,this.uint16[ot+17]=we,this.uint16[ot+18]=Pe,this.uint16[ot+19]=Je,this.uint16[ot+20]=et,this.uint16[ot+21]=xt,this.uint16[ot+22]=Pt,this.uint32[Vt+12]=bt,this.float32[Vt+13]=yt,this.float32[Vt+14]=ht,this.uint16[ot+30]=Ct,this.uint16[ot+31]=gt,o}}Gl.prototype.bytesPerElement=64,Et("StructArrayLayout8i15ui1ul2f2ui64",Gl);class Yh extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o){const h=this.length;return this.resize(h+1),this.emplace(h,o)}emplace(o,h){return this.float32[1*o+0]=h,o}}Yh.prototype.bytesPerElement=4,Et("StructArrayLayout1f4",Yh);class Kh extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,h,p){const _=this.length;return this.resize(_+1),this.emplace(_,o,h,p)}emplace(o,h,p,_){const x=3*o;return this.uint16[6*o+0]=h,this.float32[x+1]=p,this.float32[x+2]=_,o}}Kh.prototype.bytesPerElement=12,Et("StructArrayLayout1ui2f12",Kh);class jl extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,h,p){const _=this.length;return this.resize(_+1),this.emplace(_,o,h,p)}emplace(o,h,p,_){const x=4*o;return this.uint32[2*o+0]=h,this.uint16[x+2]=p,this.uint16[x+3]=_,o}}jl.prototype.bytesPerElement=8,Et("StructArrayLayout1ul2ui8",jl);class qp extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,h){const p=this.length;return this.resize(p+1),this.emplace(p,o,h)}emplace(o,h,p){const _=2*o;return this.uint16[_+0]=h,this.uint16[_+1]=p,o}}qp.prototype.bytesPerElement=4,Et("StructArrayLayout2ui4",qp);class $p extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o){const h=this.length;return this.resize(h+1),this.emplace(h,o)}emplace(o,h){return this.uint16[1*o+0]=h,o}}$p.prototype.bytesPerElement=2,Et("StructArrayLayout1ui2",$p);class Jh extends Nr{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,h,p,_){const x=this.length;return this.resize(x+1),this.emplace(x,o,h,p,_)}emplace(o,h,p,_,x){const w=4*o;return this.float32[w+0]=h,this.float32[w+1]=p,this.float32[w+2]=_,this.float32[w+3]=x,o}}Jh.prototype.bytesPerElement=16,Et("StructArrayLayout4f16",Jh);class lg extends kc{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 E(this.anchorPointX,this.anchorPointY)}}lg.prototype.size=20;class y extends Zh{get(o){return new lg(this,o)}}Et("CollisionBoxArray",y);class s extends kc{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(o){this._structArray.uint8[this._pos1+37]=o}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(o){this._structArray.uint8[this._pos1+38]=o}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(o){this._structArray.uint32[this._pos4+10]=o}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}s.prototype.size=48;class f extends Pu{get(o){return new s(this,o)}}Et("PlacedSymbolArray",f);class d extends kc{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(o){this._structArray.uint32[this._pos4+12]=o}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]}}d.prototype.size=64;class g extends Gl{get(o){return new d(this,o)}}Et("SymbolInstanceArray",g);class v extends Yh{getoffsetX(o){return this.float32[1*o+0]}}Et("GlyphOffsetArray",v);class C extends Aa{getx(o){return this.int16[3*o+0]}gety(o){return this.int16[3*o+1]}gettileUnitDistanceFromAnchor(o){return this.int16[3*o+2]}}Et("SymbolLineVertexArray",C);class L extends kc{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]}}L.prototype.size=12;class M extends Kh{get(o){return new L(this,o)}}Et("TextAnchorOffsetArray",M);class R extends kc{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]}}R.prototype.size=8;class V extends jl{get(o){return new R(this,o)}}Et("FeatureIndexArray",V);class U extends Dc{}class X extends Dc{}class oe extends Dc{}class ie extends Vp{}class ce extends Up{}class ee extends Rc{}class Se extends Wh{}class ze extends Gp{}class fe extends jp{}class Me extends ka{}class Fe extends Nc{}class Ue extends Oc{}class Xe extends Xh{}class nt extends qp{}const tt=Hr([{name:"a_pos",components:2,type:"Int16"}],4),{members:ut}=tt;class pt{constructor(o=[]){this.segments=o}prepareSegment(o,h,p,_){let x=this.segments[this.segments.length-1];return o>pt.MAX_VERTEX_ARRAY_LENGTH&&Qe(`Max vertices per segment is ${pt.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${o}`),(!x||x.vertexLength+o>pt.MAX_VERTEX_ARRAY_LENGTH||x.sortKey!==_)&&(x={vertexOffset:h.length,primitiveOffset:p.length,vertexLength:0,primitiveLength:0},_!==void 0&&(x.sortKey=_),this.segments.push(x)),x}get(){return this.segments}destroy(){for(const o of this.segments)for(const h in o.vaos)o.vaos[h].destroy()}static simpleSegment(o,h,p,_){return new pt([{vertexOffset:o,primitiveOffset:h,vertexLength:p,primitiveLength:_,vaos:{},sortKey:0}])}}function cn(u,o){return 256*(u=J(Math.floor(u),0,255))+J(Math.floor(o),0,255)}pt.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Et("SegmentVector",pt);const mt=Hr([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]);var jt={exports:{}},hn={exports:{}};hn.exports=function(u,o){var h,p,_,x,w,I,P,k;for(p=u.length-(h=3&u.length),_=o,w=3432918353,I=461845907,k=0;k>>16)*w&65535)<<16)&4294967295)<<15|P>>>17))*I+(((P>>>16)*I&65535)<<16)&4294967295)<<13|_>>>19))+((5*(_>>>16)&65535)<<16)&4294967295))+((58964+(x>>>16)&65535)<<16);switch(P=0,h){case 3:P^=(255&u.charCodeAt(k+2))<<16;case 2:P^=(255&u.charCodeAt(k+1))<<8;case 1:_^=P=(65535&(P=(P=(65535&(P^=255&u.charCodeAt(k)))*w+(((P>>>16)*w&65535)<<16)&4294967295)<<15|P>>>17))*I+(((P>>>16)*I&65535)<<16)&4294967295}return _^=u.length,_=2246822507*(65535&(_^=_>>>16))+((2246822507*(_>>>16)&65535)<<16)&4294967295,_=3266489909*(65535&(_^=_>>>13))+((3266489909*(_>>>16)&65535)<<16)&4294967295,(_^=_>>>16)>>>0};var Ln=hn.exports,Qt={exports:{}};Qt.exports=function(u,o){for(var h,p=u.length,_=o^p,x=0;p>=4;)h=1540483477*(65535&(h=255&u.charCodeAt(x)|(255&u.charCodeAt(++x))<<8|(255&u.charCodeAt(++x))<<16|(255&u.charCodeAt(++x))<<24))+((1540483477*(h>>>16)&65535)<<16),_=1540483477*(65535&_)+((1540483477*(_>>>16)&65535)<<16)^(h=1540483477*(65535&(h^=h>>>24))+((1540483477*(h>>>16)&65535)<<16)),p-=4,++x;switch(p){case 3:_^=(255&u.charCodeAt(x+2))<<16;case 2:_^=(255&u.charCodeAt(x+1))<<8;case 1:_=1540483477*(65535&(_^=255&u.charCodeAt(x)))+((1540483477*(_>>>16)&65535)<<16)}return _=1540483477*(65535&(_^=_>>>13))+((1540483477*(_>>>16)&65535)<<16),(_^=_>>>15)>>>0};var dn=Ln,yn=Qt.exports;jt.exports=dn,jt.exports.murmur3=dn,jt.exports.murmur2=yn;var Or=m(jt.exports);class Hn{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(o,h,p,_){this.ids.push(Go(o)),this.positions.push(h,p,_)}getPositions(o){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const h=Go(o);let p=0,_=this.ids.length-1;for(;p<_;){const w=p+_>>1;this.ids[w]>=h?_=w:p=w+1}const x=[];for(;this.ids[p]===h;)x.push({index:this.positions[3*p],start:this.positions[3*p+1],end:this.positions[3*p+2]}),p++;return x}static serialize(o,h){const p=new Float64Array(o.ids),_=new Uint32Array(o.positions);return mi(p,_,0,p.length-1),h&&h.push(p.buffer,_.buffer),{ids:p,positions:_}}static deserialize(o){const h=new Hn;return h.ids=o.ids,h.positions=o.positions,h.indexed=!0,h}}function Go(u){const o=+u;return!isNaN(o)&&o<=Number.MAX_SAFE_INTEGER?o:Or(String(u))}function mi(u,o,h,p){for(;h>1];let x=h-1,w=p+1;for(;;){do x++;while(u[x]<_);do w--;while(u[w]>_);if(x>=w)break;Ir(u,x,w),Ir(o,3*x,3*w),Ir(o,3*x+1,3*w+1),Ir(o,3*x+2,3*w+2)}w-h`u_${_}`),this.type=p}setUniform(o,h,p){o.set(p.constantOr(this.value))}getBinding(o,h,p){return this.type==="color"?new ll(o,h):new jo(o,h)}}class oi{constructor(o,h){this.uniformNames=h.map(p=>`u_${p}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(o,h){this.pixelRatioFrom=h.pixelRatio,this.pixelRatioTo=o.pixelRatio,this.patternFrom=h.tlbr,this.patternTo=o.tlbr}setUniform(o,h,p,_){const x=_==="u_pattern_to"?this.patternTo:_==="u_pattern_from"?this.patternFrom:_==="u_pixel_ratio_to"?this.pixelRatioTo:_==="u_pixel_ratio_from"?this.pixelRatioFrom:null;x&&o.set(x)}getBinding(o,h,p){return p.substr(0,9)==="u_pattern"?new na(o,h):new jo(o,h)}}class Cr{constructor(o,h,p,_){this.expression=o,this.type=p,this.maxValue=0,this.paintVertexAttributes=h.map(x=>({name:`a_${x}`,type:"Float32",components:p==="color"?2:1,offset:0})),this.paintVertexArray=new _}populatePaintArray(o,h,p,_,x){const w=this.paintVertexArray.length,I=this.expression.evaluate(new yr(0),h,{},_,[],x);this.paintVertexArray.resize(o),this._setPaintValue(w,o,I)}updatePaintArray(o,h,p,_){const x=this.expression.evaluate({zoom:0},p,_);this._setPaintValue(o,h,x)}_setPaintValue(o,h,p){if(this.type==="color"){const _=ul(p);for(let x=o;x`u_${I}_t`),this.type=p,this.useIntegerZoom=_,this.zoom=x,this.maxValue=0,this.paintVertexAttributes=h.map(I=>({name:`a_${I}`,type:"Float32",components:p==="color"?4:2,offset:0})),this.paintVertexArray=new w}populatePaintArray(o,h,p,_,x){const w=this.expression.evaluate(new yr(this.zoom),h,{},_,[],x),I=this.expression.evaluate(new yr(this.zoom+1),h,{},_,[],x),P=this.paintVertexArray.length;this.paintVertexArray.resize(o),this._setPaintValue(P,o,w,I)}updatePaintArray(o,h,p,_){const x=this.expression.evaluate({zoom:this.zoom},p,_),w=this.expression.evaluate({zoom:this.zoom+1},p,_);this._setPaintValue(o,h,x,w)}_setPaintValue(o,h,p,_){if(this.type==="color"){const x=ul(p),w=ul(_);for(let I=o;I`#define HAS_UNIFORM_${_}`))}return o}getBinderAttributes(){const o=[];for(const h in this.binders){const p=this.binders[h];if(p instanceof Cr||p instanceof vr)for(let _=0;_!0){this.programConfigurations={};for(const _ of o)this.programConfigurations[_.id]=new si(_,h,p);this.needsUpload=!1,this._featureMap=new Hn,this._bufferOffset=0}populatePaintArrays(o,h,p,_,x,w){for(const I in this.programConfigurations)this.programConfigurations[I].populatePaintArrays(o,h,_,x,w);h.id!==void 0&&this._featureMap.add(h.id,p,this._bufferOffset,o),this._bufferOffset=o,this.needsUpload=!0}updatePaintArrays(o,h,p,_){for(const x of p)this.needsUpload=this.programConfigurations[x.id].updatePaintArrays(o,this._featureMap,h,x,_)||this.needsUpload}get(o){return this.programConfigurations[o]}upload(o){if(this.needsUpload){for(const h in this.programConfigurations)this.programConfigurations[h].upload(o);this.needsUpload=!1}}destroy(){for(const o in this.programConfigurations)this.programConfigurations[o].destroy()}}function fs(u,o){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[u]||[u.replace(`${o}-`,"").replace(/-/g,"_")]}function ai(u,o,h){const p={color:{source:Rc,composite:Jh},number:{source:Yh,composite:Rc}},_=function(x){return{"line-pattern":{source:Se,composite:Se},"fill-pattern":{source:Se,composite:Se},"fill-extrusion-pattern":{source:Se,composite:Se}}[x]}(u);return _&&_[h]||p[o][h]}Et("ConstantBinder",ra),Et("CrossFadedConstantBinder",oi),Et("SourceExpressionBinder",Cr),Et("CrossFadedCompositeBinder",hs),Et("CompositeExpressionBinder",vr),Et("ProgramConfiguration",si,{omit:["_buffers"]}),Et("ProgramConfigurationSet",Tr);const Gr=8192,Wp=Math.pow(2,14)-1,ug=-Wp-1;function ql(u){const o=Gr/u.extent,h=u.loadGeometry();for(let p=0;pw.x+1||Pw.y+1)&&Qe("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return h}function $l(u,o){return{type:u.type,id:u.id,properties:u.properties,geometry:o?ql(u):[]}}function Qh(u,o,h,p,_){u.emplaceBack(2*o+(p+1)/2,2*h+(_+1)/2)}class cl{constructor(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(h=>h.id),this.index=o.index,this.hasPattern=!1,this.layoutVertexArray=new X,this.indexArray=new Xe,this.segments=new pt,this.programConfigurations=new Tr(o.layers,o.zoom),this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(o,h,p){const _=this.layers[0],x=[];let w=null,I=!1;_.type==="circle"&&(w=_.layout.get("circle-sort-key"),I=!w.isConstant());for(const{feature:P,id:k,index:N,sourceLayerIndex:B}of o){const $=this.layers[0]._featureFilter.needGeometry,H=$l(P,$);if(!this.layers[0]._featureFilter.filter(new yr(this.zoom),H,p))continue;const Y=I?w.evaluate(H,{},p):void 0,te={id:k,properties:P.properties,type:P.type,sourceLayerIndex:B,index:N,geometry:$?H.geometry:ql(P),patterns:{},sortKey:Y};x.push(te)}I&&x.sort((P,k)=>P.sortKey-k.sortKey);for(const P of x){const{geometry:k,index:N,sourceLayerIndex:B}=P,$=o[N].feature;this.addFeature(P,k,N,p),h.featureIndex.insert($,k,N,B,this.index)}}update(o,h,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,h,this.stateDependentLayers,p)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,ut),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(o,h,p,_){for(const x of h)for(const w of x){const I=w.x,P=w.y;if(I<0||I>=Gr||P<0||P>=Gr)continue;const k=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,o.sortKey),N=k.vertexLength;Qh(this.layoutVertexArray,I,P,-1,-1),Qh(this.layoutVertexArray,I,P,1,-1),Qh(this.layoutVertexArray,I,P,1,1),Qh(this.layoutVertexArray,I,P,-1,1),this.indexArray.emplaceBack(N,N+1,N+2),this.indexArray.emplaceBack(N,N+3,N+2),k.vertexLength+=4,k.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,o,p,{},_)}}function Zp(u,o){for(let h=0;h1){if(ef(u,o))return!0;for(let p=0;p1?h:h.sub(o)._mult(_)._add(o))}function cb(u,o){let h,p,_,x=!1;for(let w=0;wo.y!=_.y>o.y&&o.x<(_.x-p.x)*(o.y-p.y)/(_.y-p.y)+p.x&&(x=!x)}return x}function tf(u,o){let h=!1;for(let p=0,_=u.length-1;po.y!=w.y>o.y&&o.x<(w.x-x.x)*(o.y-x.y)/(w.y-x.y)+x.x&&(h=!h)}return h}function TT(u,o,h){const p=h[0],_=h[2];if(u.x_.x&&o.x>_.x||u.y_.y&&o.y>_.y)return!1;const x=Le(u,o,h[0]);return x!==Le(u,o,h[1])||x!==Le(u,o,h[2])||x!==Le(u,o,h[3])}function Kp(u,o,h){const p=o.paint.get(u).value;return p.kind==="constant"?p.value:h.programConfigurations.get(o.id).getMaxValue(u)}function hg(u){return Math.sqrt(u[0]*u[0]+u[1]*u[1])}function fg(u,o,h,p,_){if(!o[0]&&!o[1])return u;const x=E.convert(o)._mult(_);h==="viewport"&&x._rotate(-p);const w=[];for(let I=0;Idb(le,te))}(k,P),H=B?N*I:N;for(const Y of _)for(const te of Y){const le=B?te:db(te,P);let ge=H;const De=pg([],[te.x,te.y,0,1],P);if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?ge*=De[3]/w.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(ge*=w.cameraToCenterDistance/De[3]),cg($,le,ge))return!0}return!1}}function db(u,o){const h=pg([],[u.x,u.y,0,1],o);return new E(h[0]/h[3],h[1]/h[3])}class mb extends cl{}let gb;Et("HeatmapBucket",mb,{omit:["layers"]});var AT={get paint(){return gb=gb||new Eo({"heatmap-radius":new Ut(Be.paint_heatmap["heatmap-radius"]),"heatmap-weight":new Ut(Be.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new Dt(Be.paint_heatmap["heatmap-intensity"]),"heatmap-color":new zp(Be.paint_heatmap["heatmap-color"]),"heatmap-opacity":new Dt(Be.paint_heatmap["heatmap-opacity"])})}};function Wy(u,{width:o,height:h},p,_){if(_){if(_ instanceof Uint8ClampedArray)_=new Uint8Array(_.buffer);else if(_.length!==o*h*p)throw new RangeError(`mismatched image size. expected: ${_.length} but got: ${o*h*p}`)}else _=new Uint8Array(o*h*p);return u.width=o,u.height=h,u.data=_,u}function _b(u,{width:o,height:h},p){if(o===u.width&&h===u.height)return;const _=Wy({},{width:o,height:h},p);Zy(u,_,{x:0,y:0},{x:0,y:0},{width:Math.min(u.width,o),height:Math.min(u.height,h)},p),u.width=o,u.height=h,u.data=_.data}function Zy(u,o,h,p,_,x){if(_.width===0||_.height===0)return o;if(_.width>u.width||_.height>u.height||h.x>u.width-_.width||h.y>u.height-_.height)throw new RangeError("out of range source coordinates for image copy");if(_.width>o.width||_.height>o.height||p.x>o.width-_.width||p.y>o.height-_.height)throw new RangeError("out of range destination coordinates for image copy");const w=u.data,I=o.data;if(w===I)throw new Error("srcData equals dstData, so image is already copied");for(let P=0;P<_.height;P++){const k=((h.y+P)*u.width+h.x)*x,N=((p.y+P)*o.width+p.x)*x;for(let B=0;B<_.width*x;B++)I[N+B]=w[k+B]}return o}class Qp{constructor(o,h){Wy(this,o,1,h)}resize(o){_b(this,o,1)}clone(){return new Qp({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(o,h,p,_,x){Zy(o,h,p,_,x,1)}}class As{constructor(o,h){Wy(this,o,4,h)}resize(o){_b(this,o,4)}replace(o,h){h?this.data.set(o):this.data=o instanceof Uint8ClampedArray?new Uint8Array(o.buffer):o}clone(){return new As({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(o,h,p,_,x){Zy(o,h,p,_,x,4)}}function yb(u){const o={},h=u.resolution||256,p=u.clips?u.clips.length:1,_=u.image||new As({width:h,height:p});if(Math.log(h)/Math.LN2%1!=0)throw new Error(`width is not a power of 2 - ${h}`);const x=(w,I,P)=>{o[u.evaluationKey]=P;const k=u.expression.evaluate(o);_.data[w+I+0]=Math.floor(255*k.r/k.a),_.data[w+I+1]=Math.floor(255*k.g/k.a),_.data[w+I+2]=Math.floor(255*k.b/k.a),_.data[w+I+3]=Math.floor(255*k.a)};if(u.clips)for(let w=0,I=0;w80*h){p=x=u[0],_=w=u[1];for(var Y=h;Yx&&(x=I),P>w&&(w=P);k=(k=Math.max(x-p,w-_))!==0?32767/k:0}return ed($,H,h,p,_,k,0),H}function bb(u,o,h,p,_){var x,w;if(_===Ky(u,o,h,p)>0)for(x=o;x=o;x-=p)w=Sb(x,u[x],u[x+1],w);return w&&mg(w,w.next)&&(nd(w),w=w.next),w}function Fc(u,o){if(!u)return u;o||(o=u);var h,p=u;do if(h=!1,p.steiner||!mg(p,p.next)&&Xr(p.prev,p,p.next)!==0)p=p.next;else{if(nd(p),(p=o=p.prev)===p.next)break;h=!0}while(h||p!==o);return o}function ed(u,o,h,p,_,x,w){if(u){!w&&x&&function(N,B,$,H){var Y=N;do Y.z===0&&(Y.z=Xy(Y.x,Y.y,B,$,H)),Y.prevZ=Y.prev,Y.nextZ=Y.next,Y=Y.next;while(Y!==N);Y.prevZ.nextZ=null,Y.prevZ=null,function(te){var le,ge,De,we,Pe,Je,et,xt,Pt=1;do{for(ge=te,te=null,Pe=null,Je=0;ge;){for(Je++,De=ge,et=0,le=0;le0||xt>0&&De;)et!==0&&(xt===0||!De||ge.z<=De.z)?(we=ge,ge=ge.nextZ,et--):(we=De,De=De.nextZ,xt--),Pe?Pe.nextZ=we:te=we,we.prevZ=Pe,Pe=we;ge=De}Pe.nextZ=null,Pt*=2}while(Je>1)}(Y)}(u,p,_,x);for(var I,P,k=u;u.prev!==u.next;)if(I=u.prev,P=u.next,x?FT(u,p,_,x):zT(u))o.push(I.i/h|0),o.push(u.i/h|0),o.push(P.i/h|0),nd(u),u=P.next,k=P.next;else if((u=P)===k){w?w===1?ed(u=BT(Fc(u),o,h),o,h,p,_,x,2):w===2&&VT(u,o,h,p,_,x):ed(Fc(u),o,h,p,_,x,1);break}}}function zT(u){var o=u.prev,h=u,p=u.next;if(Xr(o,h,p)>=0)return!1;for(var _=o.x,x=h.x,w=p.x,I=o.y,P=h.y,k=p.y,N=_x?_>w?_:w:x>w?x:w,H=I>P?I>k?I:k:P>k?P:k,Y=p.next;Y!==o;){if(Y.x>=N&&Y.x<=$&&Y.y>=B&&Y.y<=H&&rf(_,I,x,P,w,k,Y.x,Y.y)&&Xr(Y.prev,Y,Y.next)>=0)return!1;Y=Y.next}return!0}function FT(u,o,h,p){var _=u.prev,x=u,w=u.next;if(Xr(_,x,w)>=0)return!1;for(var I=_.x,P=x.x,k=w.x,N=_.y,B=x.y,$=w.y,H=IP?I>k?I:k:P>k?P:k,le=N>B?N>$?N:$:B>$?B:$,ge=Xy(H,Y,o,h,p),De=Xy(te,le,o,h,p),we=u.prevZ,Pe=u.nextZ;we&&we.z>=ge&&Pe&&Pe.z<=De;){if(we.x>=H&&we.x<=te&&we.y>=Y&&we.y<=le&&we!==_&&we!==w&&rf(I,N,P,B,k,$,we.x,we.y)&&Xr(we.prev,we,we.next)>=0||(we=we.prevZ,Pe.x>=H&&Pe.x<=te&&Pe.y>=Y&&Pe.y<=le&&Pe!==_&&Pe!==w&&rf(I,N,P,B,k,$,Pe.x,Pe.y)&&Xr(Pe.prev,Pe,Pe.next)>=0))return!1;Pe=Pe.nextZ}for(;we&&we.z>=ge;){if(we.x>=H&&we.x<=te&&we.y>=Y&&we.y<=le&&we!==_&&we!==w&&rf(I,N,P,B,k,$,we.x,we.y)&&Xr(we.prev,we,we.next)>=0)return!1;we=we.prevZ}for(;Pe&&Pe.z<=De;){if(Pe.x>=H&&Pe.x<=te&&Pe.y>=Y&&Pe.y<=le&&Pe!==_&&Pe!==w&&rf(I,N,P,B,k,$,Pe.x,Pe.y)&&Xr(Pe.prev,Pe,Pe.next)>=0)return!1;Pe=Pe.nextZ}return!0}function BT(u,o,h){var p=u;do{var _=p.prev,x=p.next.next;!mg(_,x)&&xb(_,p,p.next,x)&&td(_,x)&&td(x,_)&&(o.push(_.i/h|0),o.push(p.i/h|0),o.push(x.i/h|0),nd(p),nd(p.next),p=u=x),p=p.next}while(p!==u);return Fc(p)}function VT(u,o,h,p,_,x){var w=u;do{for(var I=w.next.next;I!==w.prev;){if(w.i!==I.i&&$T(w,I)){var P=wb(w,I);return w=Fc(w,w.next),P=Fc(P,P.next),ed(w,o,h,p,_,x,0),void ed(P,o,h,p,_,x,0)}I=I.next}w=w.next}while(w!==u)}function UT(u,o){return u.x-o.x}function GT(u,o){var h=function(_,x){var w,I=x,P=_.x,k=_.y,N=-1/0;do{if(k<=I.y&&k>=I.next.y&&I.next.y!==I.y){var B=I.x+(k-I.y)*(I.next.x-I.x)/(I.next.y-I.y);if(B<=P&&B>N&&(N=B,w=I.x=I.x&&I.x>=Y&&P!==I.x&&rf(kw.x||I.x===w.x&&jT(w,I)))&&(w=I,le=$)),I=I.next;while(I!==H);return w}(u,o);if(!h)return o;var p=wb(h,u);return Fc(p,p.next),Fc(h,h.next)}function jT(u,o){return Xr(u.prev,u,o.prev)<0&&Xr(o.next,u,u.next)<0}function Xy(u,o,h,p,_){return(u=1431655765&((u=858993459&((u=252645135&((u=16711935&((u=(u-h)*_|0)|u<<8))|u<<4))|u<<2))|u<<1))|(o=1431655765&((o=858993459&((o=252645135&((o=16711935&((o=(o-p)*_|0)|o<<8))|o<<4))|o<<2))|o<<1))<<1}function qT(u){var o=u,h=u;do(o.x=(u-w)*(x-I)&&(u-w)*(p-I)>=(h-w)*(o-I)&&(h-w)*(x-I)>=(_-w)*(p-I)}function $T(u,o){return u.next.i!==o.i&&u.prev.i!==o.i&&!function(h,p){var _=h;do{if(_.i!==h.i&&_.next.i!==h.i&&_.i!==p.i&&_.next.i!==p.i&&xb(_,_.next,h,p))return!0;_=_.next}while(_!==h);return!1}(u,o)&&(td(u,o)&&td(o,u)&&function(h,p){var _=h,x=!1,w=(h.x+p.x)/2,I=(h.y+p.y)/2;do _.y>I!=_.next.y>I&&_.next.y!==_.y&&w<(_.next.x-_.x)*(I-_.y)/(_.next.y-_.y)+_.x&&(x=!x),_=_.next;while(_!==h);return x}(u,o)&&(Xr(u.prev,u,o.prev)||Xr(u,o.prev,o))||mg(u,o)&&Xr(u.prev,u,u.next)>0&&Xr(o.prev,o,o.next)>0)}function Xr(u,o,h){return(o.y-u.y)*(h.x-o.x)-(o.x-u.x)*(h.y-o.y)}function mg(u,o){return u.x===o.x&&u.y===o.y}function xb(u,o,h,p){var _=_g(Xr(u,o,h)),x=_g(Xr(u,o,p)),w=_g(Xr(h,p,u)),I=_g(Xr(h,p,o));return _!==x&&w!==I||!(_!==0||!gg(u,h,o))||!(x!==0||!gg(u,p,o))||!(w!==0||!gg(h,u,p))||!(I!==0||!gg(h,o,p))}function gg(u,o,h){return o.x<=Math.max(u.x,h.x)&&o.x>=Math.min(u.x,h.x)&&o.y<=Math.max(u.y,h.y)&&o.y>=Math.min(u.y,h.y)}function _g(u){return u>0?1:u<0?-1:0}function td(u,o){return Xr(u.prev,u,u.next)<0?Xr(u,o,u.next)>=0&&Xr(u,u.prev,o)>=0:Xr(u,o,u.prev)<0||Xr(u,u.next,o)<0}function wb(u,o){var h=new Yy(u.i,u.x,u.y),p=new Yy(o.i,o.x,o.y),_=u.next,x=o.prev;return u.next=o,o.prev=u,h.next=_,_.prev=h,p.next=h,h.prev=p,x.next=p,p.prev=x,p}function Sb(u,o,h,p){var _=new Yy(u,o,h);return p?(_.next=p.next,_.prev=p,p.next.prev=_,p.next=_):(_.prev=_,_.next=_),_}function nd(u){u.next.prev=u.prev,u.prev.next=u.next,u.prevZ&&(u.prevZ.nextZ=u.nextZ),u.nextZ&&(u.nextZ.prevZ=u.prevZ)}function Yy(u,o,h){this.i=u,this.x=o,this.y=h,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Ky(u,o,h,p){for(var _=0,x=o,w=h-p;x0&&h.holes.push(p+=u[_-1].length)}return h};var Eb=m(Hy.exports);function WT(u,o,h,p,_){Ib(u,o,h||0,p||u.length-1,_||ZT)}function Ib(u,o,h,p,_){for(;p>h;){if(p-h>600){var x=p-h+1,w=o-h+1,I=Math.log(x),P=.5*Math.exp(2*I/3),k=.5*Math.sqrt(I*P*(x-P)/x)*(w-x/2<0?-1:1);Ib(u,o,Math.max(h,Math.floor(o-w*P/x+k)),Math.min(p,Math.floor(o+(x-w)*P/x+k)),_)}var N=u[o],B=h,$=p;for(rd(u,h,o),_(u[p],N)>0&&rd(u,h,p);B<$;){for(rd(u,B,$),B++,$--;_(u[B],N)<0;)B++;for(;_(u[$],N)>0;)$--}_(u[h],N)===0?rd(u,h,$):rd(u,++$,p),$<=o&&(h=$+1),o<=$&&(p=$-1)}}function rd(u,o,h){var p=u[o];u[o]=u[h],u[h]=p}function ZT(u,o){return uo?1:0}function Jy(u,o){const h=u.length;if(h<=1)return[u];const p=[];let _,x;for(let w=0;w1)for(let w=0;wh.id),this.index=o.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new oe,this.indexArray=new Xe,this.indexArray2=new nt,this.programConfigurations=new Tr(o.layers,o.zoom),this.segments=new pt,this.segments2=new pt,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(o,h,p){this.hasPattern=Qy("fill",this.layers,h);const _=this.layers[0].layout.get("fill-sort-key"),x=!_.isConstant(),w=[];for(const{feature:I,id:P,index:k,sourceLayerIndex:N}of o){const B=this.layers[0]._featureFilter.needGeometry,$=$l(I,B);if(!this.layers[0]._featureFilter.filter(new yr(this.zoom),$,p))continue;const H=x?_.evaluate($,{},p,h.availableImages):void 0,Y={id:P,properties:I.properties,type:I.type,sourceLayerIndex:N,index:k,geometry:B?$.geometry:ql(I),patterns:{},sortKey:H};w.push(Y)}x&&w.sort((I,P)=>I.sortKey-P.sortKey);for(const I of w){const{geometry:P,index:k,sourceLayerIndex:N}=I;if(this.hasPattern){const B=e0("fill",this.layers,I,this.zoom,h);this.patternFeatures.push(B)}else this.addFeature(I,P,k,p,{});h.featureIndex.insert(o[k].feature,P,k,N,this.index)}}update(o,h,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,h,this.stateDependentLayers,p)}addFeatures(o,h,p){for(const _ of this.patternFeatures)this.addFeature(_,_.geometry,_.index,h,p)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,OT),this.indexBuffer=o.createIndexBuffer(this.indexArray),this.indexBuffer2=o.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(o),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(o,h,p,_,x){for(const w of Jy(h,500)){let I=0;for(const H of w)I+=H.length;const P=this.segments.prepareSegment(I,this.layoutVertexArray,this.indexArray),k=P.vertexLength,N=[],B=[];for(const H of w){if(H.length===0)continue;H!==w[0]&&B.push(N.length/2);const Y=this.segments2.prepareSegment(H.length,this.layoutVertexArray,this.indexArray2),te=Y.vertexLength;this.layoutVertexArray.emplaceBack(H[0].x,H[0].y),this.indexArray2.emplaceBack(te+H.length-1,te),N.push(H[0].x),N.push(H[0].y);for(let le=1;le>3}if(_--,p===1||p===2)x+=u.readSVarint(),w+=u.readSVarint(),p===1&&(o&&I.push(o),o=[]),o.push(new eL(x,w));else{if(p!==7)throw new Error("unknown command "+p);o&&o.push(o[0].clone())}}return o&&I.push(o),I},of.prototype.bbox=function(){var u=this._pbf;u.pos=this._geometry;for(var o=u.readVarint()+u.pos,h=1,p=0,_=0,x=0,w=1/0,I=-1/0,P=1/0,k=-1/0;u.pos>3}if(p--,h===1||h===2)(_+=u.readSVarint())I&&(I=_),(x+=u.readSVarint())k&&(k=x);else if(h!==7)throw new Error("unknown command "+h)}return[w,P,I,k]},of.prototype.toGeoJSON=function(u,o,h){var p,_,x=this.extent*Math.pow(2,h),w=this.extent*u,I=this.extent*o,P=this.loadGeometry(),k=of.types[this.type];function N(H){for(var Y=0;Y>3;_=w===1?p.readString():w===2?p.readFloat():w===3?p.readDouble():w===4?p.readVarint64():w===5?p.readVarint():w===6?p.readSVarint():w===7?p.readBoolean():null}return _}(h))}Mb.prototype.feature=function(u){if(u<0||u>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[u];var o=this._pbf.readVarint()+this._pbf.pos;return new rL(this._pbf,o,this.extent,this._keys,this._values)};var oL=Pb;function sL(u,o,h){if(u===3){var p=new oL(h,h.readVarint()+h.pos);p.length&&(o[p.name]=p)}}Mu.VectorTile=function(u,o){this.layers=u.readFields(sL,{},o)},Mu.VectorTileFeature=Lb,Mu.VectorTileLayer=Pb;const aL=Mu.VectorTileFeature.types,n0=Math.pow(2,13);function id(u,o,h,p,_,x,w,I){u.emplaceBack(o,h,2*Math.floor(p*n0)+w,_*n0*2,x*n0*2,Math.round(I))}class r0{constructor(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(h=>h.id),this.index=o.index,this.hasPattern=!1,this.layoutVertexArray=new ie,this.centroidVertexArray=new U,this.indexArray=new Xe,this.programConfigurations=new Tr(o.layers,o.zoom),this.segments=new pt,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(o,h,p){this.features=[],this.hasPattern=Qy("fill-extrusion",this.layers,h);for(const{feature:_,id:x,index:w,sourceLayerIndex:I}of o){const P=this.layers[0]._featureFilter.needGeometry,k=$l(_,P);if(!this.layers[0]._featureFilter.filter(new yr(this.zoom),k,p))continue;const N={id:x,sourceLayerIndex:I,index:w,geometry:P?k.geometry:ql(_),properties:_.properties,type:_.type,patterns:{}};this.hasPattern?this.features.push(e0("fill-extrusion",this.layers,N,this.zoom,h)):this.addFeature(N,N.geometry,w,p,{}),h.featureIndex.insert(_,N.geometry,w,I,this.index,!0)}}addFeatures(o,h,p){for(const _ of this.features){const{geometry:x}=_;this.addFeature(_,x,_.index,h,p)}}update(o,h,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,h,this.stateDependentLayers,p)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,QT),this.centroidVertexBuffer=o.createVertexBuffer(this.centroidVertexArray,JT.members,!0),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(o,h,p,_,x){const w={x:0,y:0,vertexCount:0};for(const I of Jy(h,500)){let P=0;for(const Y of I)P+=Y.length;let k=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(const Y of I){if(Y.length===0||uL(Y))continue;let te=0;for(let le=0;le=1){const De=Y[le-1];if(!lL(ge,De)){k.vertexLength+4>pt.MAX_VERTEX_ARRAY_LENGTH&&(k=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const we=ge.sub(De)._perp()._unit(),Pe=De.dist(ge);te+Pe>32768&&(te=0),id(this.layoutVertexArray,ge.x,ge.y,we.x,we.y,0,0,te),id(this.layoutVertexArray,ge.x,ge.y,we.x,we.y,0,1,te),w.x+=2*ge.x,w.y+=2*ge.y,w.vertexCount+=2,te+=Pe,id(this.layoutVertexArray,De.x,De.y,we.x,we.y,0,0,te),id(this.layoutVertexArray,De.x,De.y,we.x,we.y,0,1,te),w.x+=2*De.x,w.y+=2*De.y,w.vertexCount+=2;const Je=k.vertexLength;this.indexArray.emplaceBack(Je,Je+2,Je+1),this.indexArray.emplaceBack(Je+1,Je+2,Je+3),k.vertexLength+=4,k.primitiveLength+=2}}}}if(k.vertexLength+P>pt.MAX_VERTEX_ARRAY_LENGTH&&(k=this.segments.prepareSegment(P,this.layoutVertexArray,this.indexArray)),aL[o.type]!=="Polygon")continue;const N=[],B=[],$=k.vertexLength;for(const Y of I)if(Y.length!==0){Y!==I[0]&&B.push(N.length/2);for(let te=0;teGr)||u.y===o.y&&(u.y<0||u.y>Gr)}function uL(u){return u.every(o=>o.x<0)||u.every(o=>o.x>Gr)||u.every(o=>o.y<0)||u.every(o=>o.y>Gr)}let Ab;Et("FillExtrusionBucket",r0,{omit:["layers","features"]});var cL={get paint(){return Ab=Ab||new Eo({"fill-extrusion-opacity":new Dt(Be["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Ut(Be["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new Dt(Be["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new Dt(Be["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new $h(Be["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Ut(Be["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Ut(Be["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new Dt(Be["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class hL extends Ms{constructor(o){super(o,cL)}createBucket(o){return new r0(o)}queryRadius(){return hg(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature(o,h,p,_,x,w,I,P){const k=fg(o,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),w.angle,I),N=this.paint.get("fill-extrusion-height").evaluate(h,p),B=this.paint.get("fill-extrusion-base").evaluate(h,p),$=function(Y,te,le,ge){const De=[];for(const we of Y){const Pe=[we.x,we.y,0,1];pg(Pe,Pe,te),De.push(new E(Pe[0]/Pe[3],Pe[1]/Pe[3]))}return De}(k,P),H=function(Y,te,le,ge){const De=[],we=[],Pe=ge[8]*te,Je=ge[9]*te,et=ge[10]*te,xt=ge[11]*te,Pt=ge[8]*le,bt=ge[9]*le,yt=ge[10]*le,ht=ge[11]*le;for(const Ct of Y){const gt=[],ot=[];for(const Vt of Ct){const kt=Vt.x,vn=Vt.y,pr=ge[0]*kt+ge[4]*vn+ge[12],br=ge[1]*kt+ge[5]*vn+ge[13],yi=ge[2]*kt+ge[6]*vn+ge[14],ps=ge[3]*kt+ge[7]*vn+ge[15],Co=yi+et,li=ps+xt,zi=pr+Pt,Zi=br+bt,To=yi+yt,Lo=ps+ht,vi=new E((pr+Pe)/li,(br+Je)/li);vi.z=Co/li,gt.push(vi);const bi=new E(zi/Lo,Zi/Lo);bi.z=To/Lo,ot.push(bi)}De.push(gt),we.push(ot)}return[De,we]}(_,B,N,P);return function(Y,te,le){let ge=1/0;Hp(le,te)&&(ge=kb(le,te[0]));for(let De=0;Deh.id),this.index=o.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(h=>{this.gradients[h.id]={}}),this.layoutVertexArray=new ce,this.layoutVertexArray2=new ee,this.indexArray=new Xe,this.programConfigurations=new Tr(o.layers,o.zoom),this.segments=new pt,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(h=>h.isStateDependent()).map(h=>h.id)}populate(o,h,p){this.hasPattern=Qy("line",this.layers,h);const _=this.layers[0].layout.get("line-sort-key"),x=!_.isConstant(),w=[];for(const{feature:I,id:P,index:k,sourceLayerIndex:N}of o){const B=this.layers[0]._featureFilter.needGeometry,$=$l(I,B);if(!this.layers[0]._featureFilter.filter(new yr(this.zoom),$,p))continue;const H=x?_.evaluate($,{},p):void 0,Y={id:P,properties:I.properties,type:I.type,sourceLayerIndex:N,index:k,geometry:B?$.geometry:ql(I),patterns:{},sortKey:H};w.push(Y)}x&&w.sort((I,P)=>I.sortKey-P.sortKey);for(const I of w){const{geometry:P,index:k,sourceLayerIndex:N}=I;if(this.hasPattern){const B=e0("line",this.layers,I,this.zoom,h);this.patternFeatures.push(B)}else this.addFeature(I,P,k,p,{});h.featureIndex.insert(o[k].feature,P,k,N,this.index)}}update(o,h,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,h,this.stateDependentLayers,p)}addFeatures(o,h,p){for(const _ of this.patternFeatures)this.addFeature(_,_.geometry,_.index,h,p)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(o){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=o.createVertexBuffer(this.layoutVertexArray2,mL)),this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,pL),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(o){if(o.properties&&Object.prototype.hasOwnProperty.call(o.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(o.properties,"mapbox_clip_end"))return{start:+o.properties.mapbox_clip_start,end:+o.properties.mapbox_clip_end}}addFeature(o,h,p,_,x){const w=this.layers[0].layout,I=w.get("line-join").evaluate(o,{}),P=w.get("line-cap"),k=w.get("line-miter-limit"),N=w.get("line-round-limit");this.lineClips=this.lineFeatureClips(o);for(const B of h)this.addLine(B,o,I,P,k,N);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,o,p,x,_)}addLine(o,h,p,_,x,w){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let ge=0;ge=2&&o[P-1].equals(o[P-2]);)P--;let k=0;for(;k0;if(xt&&ge>k){const ht=$.dist(H);if(ht>2*N){const Ct=$.sub($.sub(H)._mult(N/ht)._round());this.updateDistance(H,Ct),this.addCurrentVertex(Ct,te,0,0,B),H=Ct}}const bt=H&&Y;let yt=bt?p:I?"butt":_;if(bt&&yt==="round"&&(Jex&&(yt="bevel"),yt==="bevel"&&(Je>2&&(yt="flipbevel"),Je100)De=le.mult(-1);else{const ht=Je*te.add(le).mag()/te.sub(le).mag();De._perp()._mult(ht*(Pt?-1:1))}this.addCurrentVertex($,De,0,0,B),this.addCurrentVertex($,De.mult(-1),0,0,B)}else if(yt==="bevel"||yt==="fakeround"){const ht=-Math.sqrt(Je*Je-1),Ct=Pt?ht:0,gt=Pt?0:ht;if(H&&this.addCurrentVertex($,te,Ct,gt,B),yt==="fakeround"){const ot=Math.round(180*et/Math.PI/20);for(let Vt=1;Vt2*N){const Ct=$.add(Y.sub($)._mult(N/ht)._round());this.updateDistance($,Ct),this.addCurrentVertex(Ct,le,0,0,B),$=Ct}}}}addCurrentVertex(o,h,p,_,x,w=!1){const I=h.y*_-h.x,P=-h.y-h.x*_;this.addHalfVertex(o,h.x+h.y*p,h.y-h.x*p,w,!1,p,x),this.addHalfVertex(o,I,P,w,!0,-_,x),this.distance>Db/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(o,h,p,_,x,w))}addHalfVertex({x:o,y:h},p,_,x,w,I,P){const k=.5*(this.lineClips?this.scaledDistance*(Db-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((o<<1)+(x?1:0),(h<<1)+(w?1:0),Math.round(63*p)+128,Math.round(63*_)+128,1+(I===0?0:I<0?-1:1)|(63&k)<<2,k>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const N=P.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,N),P.primitiveLength++),w?this.e2=N:this.e1=N}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(o,h){this.distance+=o.dist(h),this.updateScaledDistance()}}let Rb,Nb;Et("LineBucket",i0,{omit:["layers","patternFeatures"]});var Ob={get paint(){return Nb=Nb||new Eo({"line-opacity":new Ut(Be.paint_line["line-opacity"]),"line-color":new Ut(Be.paint_line["line-color"]),"line-translate":new Dt(Be.paint_line["line-translate"]),"line-translate-anchor":new Dt(Be.paint_line["line-translate-anchor"]),"line-width":new Ut(Be.paint_line["line-width"]),"line-gap-width":new Ut(Be.paint_line["line-gap-width"]),"line-offset":new Ut(Be.paint_line["line-offset"]),"line-blur":new Ut(Be.paint_line["line-blur"]),"line-dasharray":new Ac(Be.paint_line["line-dasharray"]),"line-pattern":new $h(Be.paint_line["line-pattern"]),"line-gradient":new zp(Be.paint_line["line-gradient"])})},get layout(){return Rb=Rb||new Eo({"line-cap":new Dt(Be.layout_line["line-cap"]),"line-join":new Ut(Be.layout_line["line-join"]),"line-miter-limit":new Dt(Be.layout_line["line-miter-limit"]),"line-round-limit":new Dt(Be.layout_line["line-round-limit"]),"line-sort-key":new Ut(Be.layout_line["line-sort-key"])})}};class yL extends Ut{possiblyEvaluate(o,h){return h=new yr(Math.floor(h.zoom),{now:h.now,fadeDuration:h.fadeDuration,zoomHistory:h.zoomHistory,transition:h.transition}),super.possiblyEvaluate(o,h)}evaluate(o,h,p,_){return h=re({},h,{zoom:Math.floor(h.zoom)}),super.evaluate(o,h,p,_)}}let yg;class vL extends Ms{constructor(o){super(o,Ob),this.gradientVersion=0,yg||(yg=new yL(Ob.paint.properties["line-width"].specification),yg.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(o){if(o==="line-gradient"){const h=this.gradientExpression();this.stepInterpolant=!!function(p){return p._styleExpression!==void 0}(h)&&h._styleExpression.expression instanceof Sc,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(o,h){super.recalculate(o,h),this.paint._values["line-floorwidth"]=yg.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,o)}createBucket(o){return new i0(o)}queryRadius(o){const h=o,p=zb(Kp("line-width",this,h),Kp("line-gap-width",this,h)),_=Kp("line-offset",this,h);return p/2+Math.abs(_)+hg(this.paint.get("line-translate"))}queryIntersectsFeature(o,h,p,_,x,w,I){const P=fg(o,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),w.angle,I),k=I/2*zb(this.paint.get("line-width").evaluate(h,p),this.paint.get("line-gap-width").evaluate(h,p)),N=this.paint.get("line-offset").evaluate(h,p);return N&&(_=function(B,$){const H=[];for(let Y=0;Y=3){for(let le=0;le0?o+2*u:u}const bL=Hr([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),xL=Hr([{name:"a_projected_pos",components:3,type:"Float32"}],4);Hr([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const wL=Hr([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]);Hr([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const Fb=Hr([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),SL=Hr([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function EL(u,o,h){return u.sections.forEach(p=>{p.text=function(_,x,w){const I=x.layout.get("text-transform").evaluate(w,{});return I==="uppercase"?_=_.toLocaleUpperCase():I==="lowercase"&&(_=_.toLocaleLowerCase()),al.applyArabicShaping&&(_=al.applyArabicShaping(_)),_}(p.text,o,h)}),u}Hr([{name:"triangle",components:3,type:"Uint16"}]),Hr([{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"}]),Hr([{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"}]),Hr([{type:"Float32",name:"offsetX"}]),Hr([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),Hr([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);const sd={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var _i=24,Bb=Jn,Vb=function(u,o,h,p,_){var x,w,I=8*_-p-1,P=(1<>1,N=-7,B=h?_-1:0,$=h?-1:1,H=u[o+B];for(B+=$,x=H&(1<<-N)-1,H>>=-N,N+=I;N>0;x=256*x+u[o+B],B+=$,N-=8);for(w=x&(1<<-N)-1,x>>=-N,N+=p;N>0;w=256*w+u[o+B],B+=$,N-=8);if(x===0)x=1-k;else{if(x===P)return w?NaN:1/0*(H?-1:1);w+=Math.pow(2,p),x-=k}return(H?-1:1)*w*Math.pow(2,x-p)},Ub=function(u,o,h,p,_,x){var w,I,P,k=8*x-_-1,N=(1<>1,$=_===23?Math.pow(2,-24)-Math.pow(2,-77):0,H=p?0:x-1,Y=p?1:-1,te=o<0||o===0&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(I=isNaN(o)?1:0,w=N):(w=Math.floor(Math.log(o)/Math.LN2),o*(P=Math.pow(2,-w))<1&&(w--,P*=2),(o+=w+B>=1?$/P:$*Math.pow(2,1-B))*P>=2&&(w++,P/=2),w+B>=N?(I=0,w=N):w+B>=1?(I=(o*P-1)*Math.pow(2,_),w+=B):(I=o*Math.pow(2,B-1)*Math.pow(2,_),w=0));_>=8;u[h+H]=255&I,H+=Y,I/=256,_-=8);for(w=w<<_|I,k+=_;k>0;u[h+H]=255&w,H+=Y,w/=256,k-=8);u[h+H-Y]|=128*te};function Jn(u){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(u)?u:new Uint8Array(u||0),this.pos=0,this.type=0,this.length=this.buf.length}Jn.Varint=0,Jn.Fixed64=1,Jn.Bytes=2,Jn.Fixed32=5;var o0=4294967296,Gb=1/o0,jb=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function Wl(u){return u.type===Jn.Bytes?u.readVarint()+u.pos:u.pos+1}function sf(u,o,h){return h?4294967296*o+(u>>>0):4294967296*(o>>>0)+(u>>>0)}function qb(u,o,h){var p=o<=16383?1:o<=2097151?2:o<=268435455?3:Math.floor(Math.log(o)/(7*Math.LN2));h.realloc(p);for(var _=h.pos-1;_>=u;_--)h.buf[_+p]=h.buf[_]}function IL(u,o){for(var h=0;h>>8,u[h+2]=o>>>16,u[h+3]=o>>>24}function $b(u,o){return(u[o]|u[o+1]<<8|u[o+2]<<16)+(u[o+3]<<24)}Jn.prototype={destroy:function(){this.buf=null},readFields:function(u,o,h){for(h=h||this.length;this.pos>3,x=this.pos;this.type=7&p,u(_,o,this),this.pos===x&&this.skip(p)}return o},readMessage:function(u,o){return this.readFields(u,o,this.readVarint()+this.pos)},readFixed32:function(){var u=vg(this.buf,this.pos);return this.pos+=4,u},readSFixed32:function(){var u=$b(this.buf,this.pos);return this.pos+=4,u},readFixed64:function(){var u=vg(this.buf,this.pos)+vg(this.buf,this.pos+4)*o0;return this.pos+=8,u},readSFixed64:function(){var u=vg(this.buf,this.pos)+$b(this.buf,this.pos+4)*o0;return this.pos+=8,u},readFloat:function(){var u=Vb(this.buf,this.pos,!0,23,4);return this.pos+=4,u},readDouble:function(){var u=Vb(this.buf,this.pos,!0,52,8);return this.pos+=8,u},readVarint:function(u){var o,h,p=this.buf;return o=127&(h=p[this.pos++]),h<128?o:(o|=(127&(h=p[this.pos++]))<<7,h<128?o:(o|=(127&(h=p[this.pos++]))<<14,h<128?o:(o|=(127&(h=p[this.pos++]))<<21,h<128?o:function(_,x,w){var I,P,k=w.buf;if(I=(112&(P=k[w.pos++]))>>4,P<128||(I|=(127&(P=k[w.pos++]))<<3,P<128)||(I|=(127&(P=k[w.pos++]))<<10,P<128)||(I|=(127&(P=k[w.pos++]))<<17,P<128)||(I|=(127&(P=k[w.pos++]))<<24,P<128)||(I|=(1&(P=k[w.pos++]))<<31,P<128))return sf(_,I,x);throw new Error("Expected varint not more than 10 bytes")}(o|=(15&(h=p[this.pos]))<<28,u,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var u=this.readVarint();return u%2==1?(u+1)/-2:u/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var u=this.readVarint()+this.pos,o=this.pos;return this.pos=u,u-o>=12&&jb?function(h,p,_){return jb.decode(h.subarray(p,_))}(this.buf,o,u):function(h,p,_){for(var x="",w=p;w<_;){var I,P,k,N=h[w],B=null,$=N>239?4:N>223?3:N>191?2:1;if(w+$>_)break;$===1?N<128&&(B=N):$===2?(192&(I=h[w+1]))==128&&(B=(31&N)<<6|63&I)<=127&&(B=null):$===3?(P=h[w+2],(192&(I=h[w+1]))==128&&(192&P)==128&&((B=(15&N)<<12|(63&I)<<6|63&P)<=2047||B>=55296&&B<=57343)&&(B=null)):$===4&&(P=h[w+2],k=h[w+3],(192&(I=h[w+1]))==128&&(192&P)==128&&(192&k)==128&&((B=(15&N)<<18|(63&I)<<12|(63&P)<<6|63&k)<=65535||B>=1114112)&&(B=null)),B===null?(B=65533,$=1):B>65535&&(B-=65536,x+=String.fromCharCode(B>>>10&1023|55296),B=56320|1023&B),x+=String.fromCharCode(B),w+=$}return x}(this.buf,o,u)},readBytes:function(){var u=this.readVarint()+this.pos,o=this.buf.subarray(this.pos,u);return this.pos=u,o},readPackedVarint:function(u,o){if(this.type!==Jn.Bytes)return u.push(this.readVarint(o));var h=Wl(this);for(u=u||[];this.pos127;);else if(o===Jn.Bytes)this.pos=this.readVarint()+this.pos;else if(o===Jn.Fixed32)this.pos+=4;else{if(o!==Jn.Fixed64)throw new Error("Unimplemented type: "+o);this.pos+=8}},writeTag:function(u,o){this.writeVarint(u<<3|o)},realloc:function(u){for(var o=this.length||16;o268435455||u<0?function(o,h){var p,_;if(o>=0?(p=o%4294967296|0,_=o/4294967296|0):(_=~(-o/4294967296),4294967295^(p=~(-o%4294967296))?p=p+1|0:(p=0,_=_+1|0)),o>=18446744073709552e3||o<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");h.realloc(10),function(x,w,I){I.buf[I.pos++]=127&x|128,x>>>=7,I.buf[I.pos++]=127&x|128,x>>>=7,I.buf[I.pos++]=127&x|128,x>>>=7,I.buf[I.pos++]=127&x|128,I.buf[I.pos]=127&(x>>>=7)}(p,0,h),function(x,w){var I=(7&x)<<4;w.buf[w.pos++]|=I|((x>>>=3)?128:0),x&&(w.buf[w.pos++]=127&x|((x>>>=7)?128:0),x&&(w.buf[w.pos++]=127&x|((x>>>=7)?128:0),x&&(w.buf[w.pos++]=127&x|((x>>>=7)?128:0),x&&(w.buf[w.pos++]=127&x|((x>>>=7)?128:0),x&&(w.buf[w.pos++]=127&x)))))}(_,h)}(u,this):(this.realloc(4),this.buf[this.pos++]=127&u|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=127&(u>>>=7)|(u>127?128:0),u<=127||(this.buf[this.pos++]=u>>>7&127))))},writeSVarint:function(u){this.writeVarint(u<0?2*-u-1:2*u)},writeBoolean:function(u){this.writeVarint(!!u)},writeString:function(u){u=String(u),this.realloc(4*u.length),this.pos++;var o=this.pos;this.pos=function(p,_,x){for(var w,I,P=0;P<_.length;P++){if((w=_.charCodeAt(P))>55295&&w<57344){if(!I){w>56319||P+1===_.length?(p[x++]=239,p[x++]=191,p[x++]=189):I=w;continue}if(w<56320){p[x++]=239,p[x++]=191,p[x++]=189,I=w;continue}w=I-55296<<10|w-56320|65536,I=null}else I&&(p[x++]=239,p[x++]=191,p[x++]=189,I=null);w<128?p[x++]=w:(w<2048?p[x++]=w>>6|192:(w<65536?p[x++]=w>>12|224:(p[x++]=w>>18|240,p[x++]=w>>12&63|128),p[x++]=w>>6&63|128),p[x++]=63&w|128)}return x}(this.buf,u,this.pos);var h=this.pos-o;h>=128&&qb(o,h,this),this.pos=o-1,this.writeVarint(h),this.pos+=h},writeFloat:function(u){this.realloc(4),Ub(this.buf,u,this.pos,!0,23,4),this.pos+=4},writeDouble:function(u){this.realloc(8),Ub(this.buf,u,this.pos,!0,52,8),this.pos+=8},writeBytes:function(u){var o=u.length;this.writeVarint(o),this.realloc(o);for(var h=0;h=128&&qb(h,p,this),this.pos=h-1,this.writeVarint(p),this.pos+=p},writeMessage:function(u,o,h){this.writeTag(u,Jn.Bytes),this.writeRawMessage(o,h)},writePackedVarint:function(u,o){o.length&&this.writeMessage(u,IL,o)},writePackedSVarint:function(u,o){o.length&&this.writeMessage(u,CL,o)},writePackedBoolean:function(u,o){o.length&&this.writeMessage(u,PL,o)},writePackedFloat:function(u,o){o.length&&this.writeMessage(u,TL,o)},writePackedDouble:function(u,o){o.length&&this.writeMessage(u,LL,o)},writePackedFixed32:function(u,o){o.length&&this.writeMessage(u,ML,o)},writePackedSFixed32:function(u,o){o.length&&this.writeMessage(u,AL,o)},writePackedFixed64:function(u,o){o.length&&this.writeMessage(u,kL,o)},writePackedSFixed64:function(u,o){o.length&&this.writeMessage(u,DL,o)},writeBytesField:function(u,o){this.writeTag(u,Jn.Bytes),this.writeBytes(o)},writeFixed32Field:function(u,o){this.writeTag(u,Jn.Fixed32),this.writeFixed32(o)},writeSFixed32Field:function(u,o){this.writeTag(u,Jn.Fixed32),this.writeSFixed32(o)},writeFixed64Field:function(u,o){this.writeTag(u,Jn.Fixed64),this.writeFixed64(o)},writeSFixed64Field:function(u,o){this.writeTag(u,Jn.Fixed64),this.writeSFixed64(o)},writeVarintField:function(u,o){this.writeTag(u,Jn.Varint),this.writeVarint(o)},writeSVarintField:function(u,o){this.writeTag(u,Jn.Varint),this.writeSVarint(o)},writeStringField:function(u,o){this.writeTag(u,Jn.Bytes),this.writeString(o)},writeFloatField:function(u,o){this.writeTag(u,Jn.Fixed32),this.writeFloat(o)},writeDoubleField:function(u,o){this.writeTag(u,Jn.Fixed64),this.writeDouble(o)},writeBooleanField:function(u,o){this.writeVarintField(u,!!o)}};var s0=m(Bb);const a0=3;function RL(u,o,h){u===1&&h.readMessage(NL,o)}function NL(u,o,h){if(u===3){const{id:p,bitmap:_,width:x,height:w,left:I,top:P,advance:k}=h.readMessage(OL,{});o.push({id:p,bitmap:new Qp({width:x+2*a0,height:w+2*a0},_),metrics:{width:x,height:w,left:I,top:P,advance:k}})}}function OL(u,o,h){u===1?o.id=h.readVarint():u===2?o.bitmap=h.readBytes():u===3?o.width=h.readVarint():u===4?o.height=h.readVarint():u===5?o.left=h.readSVarint():u===6?o.top=h.readSVarint():u===7&&(o.advance=h.readVarint())}const Wb=a0;function Zb(u){let o=0,h=0;for(const w of u)o+=w.w*w.h,h=Math.max(h,w.w);u.sort((w,I)=>I.h-w.h);const p=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(o/.95)),h),h:1/0}];let _=0,x=0;for(const w of u)for(let I=p.length-1;I>=0;I--){const P=p[I];if(!(w.w>P.w||w.h>P.h)){if(w.x=P.x,w.y=P.y,x=Math.max(x,w.y+w.h),_=Math.max(_,w.x+w.w),w.w===P.w&&w.h===P.h){const k=p.pop();I=0&&p>=o&&xg[this.text.charCodeAt(p)];p--)h--;this.text=this.text.substring(o,h),this.sectionIndex=this.sectionIndex.slice(o,h)}substring(o,h){const p=new lf;return p.text=this.text.substring(o,h),p.sectionIndex=this.sectionIndex.slice(o,h),p.sections=this.sections,p}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((o,h)=>Math.max(o,this.sections[h].scale),0)}addTextSection(o,h){this.text+=o.text,this.sections.push(ld.forText(o.scale,o.fontStack||h));const p=this.sections.length-1;for(let _=0;_=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function bg(u,o,h,p,_,x,w,I,P,k,N,B,$,H,Y,te){const le=lf.fromFeature(u,_);let ge;B===c.ah.vertical&&le.verticalizePunctuation();const{processBidirectionalText:De,processStyledBidirectionalText:we}=al;if(De&&le.sections.length===1){ge=[];const et=De(le.toString(),u0(le,k,x,o,p,H,Y));for(const xt of et){const Pt=new lf;Pt.text=xt,Pt.sections=le.sections;for(let bt=0;bt0&&Hl>$o&&($o=Hl)}else{const Ds=Pt[En.fontStack],Zo=Ds&&Ds[Hi];if(Zo&&Zo.rect)Da=Zo.rect,ia=Zo.metrics;else{const Hl=xt[En.fontStack],pd=Hl&&Hl[Hi];if(!pd)continue;ia=pd.metrics}wi=(bi-En.scale)*_i}oa?(et.verticalizable=!0,ho.push({glyph:Hi,imageName:Ra,x:pr,y:br+wi,vertical:oa,scale:En.scale,fontStack:En.fontStack,sectionIndex:fo,metrics:ia,rect:Da}),pr+=Zl*En.scale+Vt):(ho.push({glyph:Hi,imageName:Ra,x:pr,y:br+wi,vertical:oa,scale:En.scale,fontStack:En.fontStack,sectionIndex:fo,metrics:ia,rect:Da}),pr+=ia.advance*En.scale+Vt)}ho.length!==0&&(yi=Math.max(pr-Vt,yi),BL(ho,0,ho.length-1,Co,$o)),pr=0;const Wo=ht*bi+$o;Po.lineOffset=Math.max($o,co),br+=Wo,ps=Math.max(Wo,ps),++li}var zi;const Zi=br-ad,{horizontalAlign:To,verticalAlign:Lo}=c0(Ct);(function(vi,bi,co,Po,ho,$o,Wo,xi,En){const fo=(bi-co)*ho;let Hi=0;Hi=$o!==Wo?-xi*Po-ad:(-Po*En+.5)*Wo;for(const wi of vi)for(const ia of wi.positionedGlyphs)ia.x+=fo,ia.y+=Hi})(et.positionedLines,Co,To,Lo,yi,ps,ht,Zi,yt.length),et.top+=-Lo*Zi,et.bottom=et.top+Zi,et.left+=-To*yi,et.right=et.left+yi}(Je,o,h,p,ge,w,I,P,B,k,$,te),!function(et){for(const xt of et)if(xt.positionedGlyphs.length!==0)return!1;return!0}(Pe)&&Je}const xg={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},zL={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function Xb(u,o,h,p,_,x){if(o.imageName){const w=p[o.imageName];return w?w.displaySize[0]*o.scale*_i/x+_:0}{const w=h[o.fontStack],I=w&&w[u];return I?I.metrics.advance*o.scale+_:0}}function Yb(u,o,h,p){const _=Math.pow(u-o,2);return p?u=0;let N=0;for(let $=0;$w.id),this.index=o.index,this.pixelRatio=o.pixelRatio,this.sourceLayerIndex=o.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=$y([]),this.placementViewportMatrix=$y([]);const h=this.layers[0]._unevaluatedLayout._values;this.textSizeData=ex(this.zoom,h["text-size"]),this.iconSizeData=ex(this.zoom,h["icon-size"]);const p=this.layers[0].layout,_=p.get("symbol-sort-key"),x=p.get("symbol-z-order");this.canOverlap=h0(p,"text-overlap","text-allow-overlap")!=="never"||h0(p,"icon-overlap","icon-allow-overlap")!=="never"||p.get("text-ignore-placement")||p.get("icon-ignore-placement"),this.sortFeaturesByKey=x!=="viewport-y"&&!_.isConstant(),this.sortFeaturesByY=(x==="viewport-y"||x==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,p.get("symbol-placement")==="point"&&(this.writingModes=p.get("text-writing-mode").map(w=>c.ah[w])),this.stateDependentLayerIds=this.layers.filter(w=>w.isStateDependent()).map(w=>w.id),this.sourceID=o.sourceID}createArrays(){this.text=new p0(new Tr(this.layers,this.zoom,o=>/^text/.test(o))),this.icon=new p0(new Tr(this.layers,this.zoom,o=>/^icon/.test(o))),this.glyphOffsetArray=new v,this.lineVertexArray=new C,this.symbolInstances=new g,this.textAnchorOffsets=new M}calculateGlyphDependencies(o,h,p,_,x){for(let w=0;w0)&&(w.value.kind!=="constant"||w.value.value.length>0),N=P.value.kind!=="constant"||!!P.value.value||Object.keys(P.parameters).length>0,B=x.get("symbol-sort-key");if(this.features=[],!k&&!N)return;const $=h.iconDependencies,H=h.glyphDependencies,Y=h.availableImages,te=new yr(this.zoom);for(const{feature:le,id:ge,index:De,sourceLayerIndex:we}of o){const Pe=_._featureFilter.needGeometry,Je=$l(le,Pe);if(!_._featureFilter.filter(te,Je,p))continue;let et,xt;if(Pe||(Je.geometry=ql(le)),k){const bt=_.getValueAndResolveTokens("text-field",Je,p,Y),yt=Bo.factory(bt),ht=this.hasRTLText=this.hasRTLText||jL(yt);(!ht||al.getRTLTextPluginStatus()==="unavailable"||ht&&al.isParsed())&&(et=EL(yt,_,Je))}if(N){const bt=_.getValueAndResolveTokens("icon-image",Je,p,Y);xt=bt instanceof cs?bt:cs.fromString(bt)}if(!et&&!xt)continue;const Pt=this.sortFeaturesByKey?B.evaluate(Je,{},p):void 0;if(this.features.push({id:ge,text:et,icon:xt,index:De,sourceLayerIndex:we,geometry:Je.geometry,properties:le.properties,type:UL[le.type],sortKey:Pt}),xt&&($[xt.name]=!0),et){const bt=w.evaluate(Je,{},p).join(","),yt=x.get("text-rotation-alignment")!=="viewport"&&x.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(c.ah.vertical)>=0;for(const ht of et.sections)if(ht.image)$[ht.image.name]=!0;else{const Ct=Lu(et.toString()),gt=ht.fontStack||bt,ot=H[gt]=H[gt]||{};this.calculateGlyphDependencies(ht.text,ot,yt,this.allowVerticalPlacement,Ct)}}}x.get("symbol-placement")==="line"&&(this.features=function(le){const ge={},De={},we=[];let Pe=0;function Je(bt){we.push(le[bt]),Pe++}function et(bt,yt,ht){const Ct=De[bt];return delete De[bt],De[yt]=Ct,we[Ct].geometry[0].pop(),we[Ct].geometry[0]=we[Ct].geometry[0].concat(ht[0]),Ct}function xt(bt,yt,ht){const Ct=ge[yt];return delete ge[yt],ge[bt]=Ct,we[Ct].geometry[0].shift(),we[Ct].geometry[0]=ht[0].concat(we[Ct].geometry[0]),Ct}function Pt(bt,yt,ht){const Ct=ht?yt[0][yt[0].length-1]:yt[0][0];return`${bt}:${Ct.x}:${Ct.y}`}for(let bt=0;btbt.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((le,ge)=>le.sortKey-ge.sortKey)}update(o,h,p){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(o,h,this.layers,p),this.icon.programConfigurations.updatePaintArrays(o,h,this.layers,p))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(o){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(o),this.iconCollisionBox.upload(o)),this.text.upload(o,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(o,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(o,h){const p=this.lineVertexArray.length;if(o.segment!==void 0){let _=o.dist(h[o.segment+1]),x=o.dist(h[o.segment]);const w={};for(let I=o.segment+1;I=0;I--)w[I]={x:h[I].x,y:h[I].y,tileUnitDistanceFromAnchor:x},I>0&&(x+=h[I-1].dist(h[I]));for(let I=0;I0}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(o,h){const p=o.placedSymbolArray.get(h),_=p.vertexStartIndex+4*p.numGlyphs;for(let x=p.vertexStartIndex;x<_;x+=4)o.indexArray.emplaceBack(x,x+1,x+2),o.indexArray.emplaceBack(x+1,x+2,x+3)}getSortedSymbolIndexes(o){if(this.sortedAngle===o&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;const h=Math.sin(o),p=Math.cos(o),_=[],x=[],w=[];for(let I=0;I_[I]-_[P]||x[P]-x[I]),w}addToSortKeyRanges(o,h){const p=this.sortKeyRanges[this.sortKeyRanges.length-1];p&&p.sortKey===h?p.symbolInstanceEnd=o+1:this.sortKeyRanges.push({sortKey:h,symbolInstanceStart:o,symbolInstanceEnd:o+1})}sortFeatures(o){if(this.sortFeaturesByY&&this.sortedAngle!==o&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(o),this.sortedAngle=o,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const h of this.symbolInstanceIndexes){const p=this.symbolInstances.get(h);this.featureSortOrder.push(p.featureIndex),[p.rightJustifiedTextSymbolIndex,p.centerJustifiedTextSymbolIndex,p.leftJustifiedTextSymbolIndex].forEach((_,x,w)=>{_>=0&&w.indexOf(_)===x&&this.addIndicesForPlacedSymbol(this.text,_)}),p.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,p.verticalPlacedTextSymbolIndex),p.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,p.placedIconSymbolIndex),p.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,p.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let tx,nx;Et("SymbolBucket",uf,{omit:["layers","collisionBoxArray","features","compareText"]}),uf.MAX_GLYPHS=65535,uf.addDynamicAttributes=f0;var m0={get paint(){return nx=nx||new Eo({"icon-opacity":new Ut(Be.paint_symbol["icon-opacity"]),"icon-color":new Ut(Be.paint_symbol["icon-color"]),"icon-halo-color":new Ut(Be.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ut(Be.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ut(Be.paint_symbol["icon-halo-blur"]),"icon-translate":new Dt(Be.paint_symbol["icon-translate"]),"icon-translate-anchor":new Dt(Be.paint_symbol["icon-translate-anchor"]),"text-opacity":new Ut(Be.paint_symbol["text-opacity"]),"text-color":new Ut(Be.paint_symbol["text-color"],{runtimeType:Ur,getOverride:u=>u.textColor,hasOverride:u=>!!u.textColor}),"text-halo-color":new Ut(Be.paint_symbol["text-halo-color"]),"text-halo-width":new Ut(Be.paint_symbol["text-halo-width"]),"text-halo-blur":new Ut(Be.paint_symbol["text-halo-blur"]),"text-translate":new Dt(Be.paint_symbol["text-translate"]),"text-translate-anchor":new Dt(Be.paint_symbol["text-translate-anchor"])})},get layout(){return tx=tx||new Eo({"symbol-placement":new Dt(Be.layout_symbol["symbol-placement"]),"symbol-spacing":new Dt(Be.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new Dt(Be.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Ut(Be.layout_symbol["symbol-sort-key"]),"symbol-z-order":new Dt(Be.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new Dt(Be.layout_symbol["icon-allow-overlap"]),"icon-overlap":new Dt(Be.layout_symbol["icon-overlap"]),"icon-ignore-placement":new Dt(Be.layout_symbol["icon-ignore-placement"]),"icon-optional":new Dt(Be.layout_symbol["icon-optional"]),"icon-rotation-alignment":new Dt(Be.layout_symbol["icon-rotation-alignment"]),"icon-size":new Ut(Be.layout_symbol["icon-size"]),"icon-text-fit":new Dt(Be.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new Dt(Be.layout_symbol["icon-text-fit-padding"]),"icon-image":new Ut(Be.layout_symbol["icon-image"]),"icon-rotate":new Ut(Be.layout_symbol["icon-rotate"]),"icon-padding":new Ut(Be.layout_symbol["icon-padding"]),"icon-keep-upright":new Dt(Be.layout_symbol["icon-keep-upright"]),"icon-offset":new Ut(Be.layout_symbol["icon-offset"]),"icon-anchor":new Ut(Be.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new Dt(Be.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new Dt(Be.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new Dt(Be.layout_symbol["text-rotation-alignment"]),"text-field":new Ut(Be.layout_symbol["text-field"]),"text-font":new Ut(Be.layout_symbol["text-font"]),"text-size":new Ut(Be.layout_symbol["text-size"]),"text-max-width":new Ut(Be.layout_symbol["text-max-width"]),"text-line-height":new Dt(Be.layout_symbol["text-line-height"]),"text-letter-spacing":new Ut(Be.layout_symbol["text-letter-spacing"]),"text-justify":new Ut(Be.layout_symbol["text-justify"]),"text-radial-offset":new Ut(Be.layout_symbol["text-radial-offset"]),"text-variable-anchor":new Dt(Be.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new Ut(Be.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new Ut(Be.layout_symbol["text-anchor"]),"text-max-angle":new Dt(Be.layout_symbol["text-max-angle"]),"text-writing-mode":new Dt(Be.layout_symbol["text-writing-mode"]),"text-rotate":new Ut(Be.layout_symbol["text-rotate"]),"text-padding":new Dt(Be.layout_symbol["text-padding"]),"text-keep-upright":new Dt(Be.layout_symbol["text-keep-upright"]),"text-transform":new Ut(Be.layout_symbol["text-transform"]),"text-offset":new Ut(Be.layout_symbol["text-offset"]),"text-allow-overlap":new Dt(Be.layout_symbol["text-allow-overlap"]),"text-overlap":new Dt(Be.layout_symbol["text-overlap"]),"text-ignore-placement":new Dt(Be.layout_symbol["text-ignore-placement"]),"text-optional":new Dt(Be.layout_symbol["text-optional"])})}};class rx{constructor(o){if(o.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=o.property.overrides?o.property.overrides.runtimeType:ni,this.defaultValue=o}evaluate(o){if(o.formattedSection){const h=this.defaultValue.property.overrides;if(h&&h.hasOverride(o.formattedSection))return h.getOverride(o.formattedSection)}return o.feature&&o.featureState?this.defaultValue.evaluate(o.feature,o.featureState):this.defaultValue.property.specification.default}eachChild(o){this.defaultValue.isConstant()||o(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}Et("FormatSectionOverride",rx,{omit:["defaultValue"]});class Sg extends Ms{constructor(o){super(o,m0)}recalculate(o,h){if(super.recalculate(o,h),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")==="map"?"map":"viewport"),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){const p=this.layout.get("text-writing-mode");if(p){const _=[];for(const x of p)_.indexOf(x)<0&&_.push(x);this.layout._values["text-writing-mode"]=_}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(o,h,p,_){const x=this.layout.get(o).evaluate(h,{},p,_),w=this._unevaluatedLayout._values[o];return w.isDataDriven()||rr(w.value)||!x?x:function(I,P){return P.replace(/{([^{}]+)}/g,(k,N)=>I&&N in I?String(I[N]):"")}(h.properties,x)}createBucket(o){return new uf(o)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const o of m0.paint.overridableProperties){if(!Sg.hasPaintOverride(this.layout,o))continue;const h=this.paint.get(o),p=new rx(h),_=new fr(p,h.property.specification);let x=null;x=h.value.kind==="constant"||h.value.kind==="source"?new Ah("source",_):new Cp("composite",_,h.value.zoomStops),this.paint._values[o]=new Ps(h.property,x,h.parameters)}}_handleOverridablePaintPropertyUpdate(o,h,p){return!(!this.layout||h.isDataDriven()||p.isDataDriven())&&Sg.hasPaintOverride(this.layout,o)}static hasPaintOverride(o,h){const p=o.get("text-field"),_=m0.paint.properties[h];let x=!1;const w=I=>{for(const P of I)if(_.overrides&&_.overrides.hasOverride(P))return void(x=!0)};if(p.value.kind==="constant"&&p.value.value instanceof Bo)w(p.value.value.sections);else if(p.value.kind==="source"){const I=k=>{x||(k instanceof nl&&ii(k.value)===Wr?w(k.value.sections):k instanceof Ph?w(k.sections):k.eachChild(I))},P=p.value;P._styleExpression&&I(P._styleExpression.expression)}return x}}let ix;var qL={get paint(){return ix=ix||new Eo({"background-color":new Dt(Be.paint_background["background-color"]),"background-pattern":new Ac(Be.paint_background["background-pattern"]),"background-opacity":new Dt(Be.paint_background["background-opacity"])})}};class $L extends Ms{constructor(o){super(o,qL)}}let ox;var WL={get paint(){return ox=ox||new Eo({"raster-opacity":new Dt(Be.paint_raster["raster-opacity"]),"raster-hue-rotate":new Dt(Be.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new Dt(Be.paint_raster["raster-brightness-min"]),"raster-brightness-max":new Dt(Be.paint_raster["raster-brightness-max"]),"raster-saturation":new Dt(Be.paint_raster["raster-saturation"]),"raster-contrast":new Dt(Be.paint_raster["raster-contrast"]),"raster-resampling":new Dt(Be.paint_raster["raster-resampling"]),"raster-fade-duration":new Dt(Be.paint_raster["raster-fade-duration"])})}};class ZL extends Ms{constructor(o){super(o,WL)}}class HL extends Ms{constructor(o){super(o,{}),this.onAdd=h=>{this.implementation.onAdd&&this.implementation.onAdd(h,h.painter.context.gl)},this.onRemove=h=>{this.implementation.onRemove&&this.implementation.onRemove(h,h.painter.context.gl)},this.implementation=o}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error("Custom layers cannot be serialized")}}class XL{constructor(o){this._methodToThrottle=o,this._triggered=!1,typeof MessageChannel<"u"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._methodToThrottle()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._methodToThrottle()},0))}remove(){delete this._channel,this._methodToThrottle=()=>{}}}const g0=63710088e-1;class Du{constructor(o,h){if(isNaN(o)||isNaN(h))throw new Error(`Invalid LngLat object: (${o}, ${h})`);if(this.lng=+o,this.lat=+h,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new Du(he(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(o){const h=Math.PI/180,p=this.lat*h,_=o.lat*h,x=Math.sin(p)*Math.sin(_)+Math.cos(p)*Math.cos(_)*Math.cos((o.lng-this.lng)*h);return g0*Math.acos(Math.min(x,1))}static convert(o){if(o instanceof Du)return o;if(Array.isArray(o)&&(o.length===2||o.length===3))return new Du(Number(o[0]),Number(o[1]));if(!Array.isArray(o)&&typeof o=="object"&&o!==null)return new Du(Number("lng"in o?o.lng:o.lon),Number(o.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const sx=2*Math.PI*g0;function ax(u){return sx*Math.cos(u*Math.PI/180)}function lx(u){return(180+u)/360}function ux(u){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+u*Math.PI/360)))/360}function cx(u,o){return u/ax(o)}function _0(u){return 360/Math.PI*Math.atan(Math.exp((180-360*u)*Math.PI/180))-90}class Eg{constructor(o,h,p=0){this.x=+o,this.y=+h,this.z=+p}static fromLngLat(o,h=0){const p=Du.convert(o);return new Eg(lx(p.lng),ux(p.lat),cx(h,p.lat))}toLngLat(){return new Du(360*this.x-180,_0(this.y))}toAltitude(){return this.z*ax(_0(this.y))}meterInMercatorCoordinateUnits(){return 1/sx*(o=_0(this.y),1/Math.cos(o*Math.PI/180));var o}}function hx(u,o,h){var p=2*Math.PI*6378137/256/Math.pow(2,h);return[u*p-2*Math.PI*6378137/2,o*p-2*Math.PI*6378137/2]}class y0{constructor(o,h,p){if(o<0||o>25||p<0||p>=Math.pow(2,o)||h<0||h>=Math.pow(2,o))throw new Error(`x=${h}, y=${p}, z=${o} outside of bounds. 0<=x<${Math.pow(2,o)}, 0<=y<${Math.pow(2,o)} 0<=z<=25 `);this.z=o,this.x=h,this.y=p,this.key=cd(0,o,o,h,p)}equals(o){return this.z===o.z&&this.x===o.x&&this.y===o.y}url(o,h,p){const _=(w=this.y,I=this.z,P=hx(256*(x=this.x),256*(w=Math.pow(2,I)-w-1),I),k=hx(256*(x+1),256*(w+1),I),P[0]+","+P[1]+","+k[0]+","+k[1]);var x,w,I,P,k;const N=function(B,$,H){let Y,te="";for(let le=B;le>0;le--)Y=1<1?"@2x":"").replace(/{quadkey}/g,N).replace(/{bbox-epsg-3857}/g,_)}isChildOf(o){const h=this.z-o.z;return h>0&&o.x===this.x>>h&&o.y===this.y>>h}getTilePoint(o){const h=Math.pow(2,this.z);return new E((o.x*h-this.x)*Gr,(o.y*h-this.y)*Gr)}toString(){return`${this.z}/${this.x}/${this.y}`}}class fx{constructor(o,h){this.wrap=o,this.canonical=h,this.key=cd(o,h.z,h.z,h.x,h.y)}}class ks{constructor(o,h,p,_,x){if(o= z; overscaledZ = ${o}; z = ${p}`);this.overscaledZ=o,this.wrap=h,this.canonical=new y0(p,+_,+x),this.key=cd(h,o,p,_,x)}clone(){return new ks(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(o){return this.overscaledZ===o.overscaledZ&&this.wrap===o.wrap&&this.canonical.equals(o.canonical)}scaledTo(o){if(o>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${o}; overscaledZ = ${this.overscaledZ}`);const h=this.canonical.z-o;return o>this.canonical.z?new ks(o,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new ks(o,this.wrap,o,this.canonical.x>>h,this.canonical.y>>h)}calculateScaledKey(o,h){if(o>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${o}; overscaledZ = ${this.overscaledZ}`);const p=this.canonical.z-o;return o>this.canonical.z?cd(this.wrap*+h,o,this.canonical.z,this.canonical.x,this.canonical.y):cd(this.wrap*+h,o,o,this.canonical.x>>p,this.canonical.y>>p)}isChildOf(o){if(o.wrap!==this.wrap)return!1;const h=this.canonical.z-o.canonical.z;return o.overscaledZ===0||o.overscaledZ>h&&o.canonical.y===this.canonical.y>>h}children(o){if(this.overscaledZ>=o)return[new ks(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const h=this.canonical.z+1,p=2*this.canonical.x,_=2*this.canonical.y;return[new ks(h,this.wrap,h,p,_),new ks(h,this.wrap,h,p+1,_),new ks(h,this.wrap,h,p,_+1),new ks(h,this.wrap,h,p+1,_+1)]}isLessThan(o){return this.wrapo.wrap)&&(this.overscaledZo.overscaledZ)&&(this.canonical.xo.canonical.x)&&this.canonical.ythis.max&&(this.max=B),B=this.dim+1||h<-1||h>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(h+1)*this.stride+(o+1)}unpack(o,h,p){return o*this.redFactor+h*this.greenFactor+p*this.blueFactor-this.baseShift}getPixels(){return new As({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(o,h,p){if(this.dim!==o.dim)throw new Error("dem dimension mismatch");let _=h*this.dim,x=h*this.dim+this.dim,w=p*this.dim,I=p*this.dim+this.dim;switch(h){case-1:_=x-1;break;case 1:x=_+1}switch(p){case-1:w=I-1;break;case 1:I=w+1}const P=-h*this.dim,k=-p*this.dim;for(let N=w;N=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${o} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[o]}}class mx{constructor(o,h,p,_,x){this.type="Feature",this._vectorTileFeature=o,o._z=h,o._x=p,o._y=_,this.properties=o.properties,this.id=x}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(o){this._geometry=o}toJSON(){const o={geometry:this.geometry};for(const h in this)h!=="_geometry"&&h!=="_vectorTileFeature"&&(o[h]=this[h]);return o}}class gx{constructor(o,h){this.tileID=o,this.x=o.canonical.x,this.y=o.canonical.y,this.z=o.canonical.z,this.grid=new Lc(Gr,16,0),this.grid3D=new Lc(Gr,16,0),this.featureIndexArray=new V,this.promoteId=h}insert(o,h,p,_,x,w){const I=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(p,_,x);const P=w?this.grid3D:this.grid;for(let k=0;k=0&&B[3]>=0&&P.insert(I,B[0],B[1],B[2],B[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new Mu.VectorTile(new s0(this.rawTileData)).layers,this.sourceLayerCoder=new dx(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(o,h,p,_){this.loadVTLayers();const x=o.params||{},w=Gr/o.tileSize/o.scale,I=Nh(x.filter),P=o.queryGeometry,k=o.queryPadding*w,N=yx(P),B=this.grid.query(N.minX-k,N.minY-k,N.maxX+k,N.maxY+k),$=yx(o.cameraQueryGeometry),H=this.grid3D.query($.minX-k,$.minY-k,$.maxX+k,$.maxY+k,(le,ge,De,we)=>function(Pe,Je,et,xt,Pt){for(const yt of Pe)if(Je<=yt.x&&et<=yt.y&&xt>=yt.x&&Pt>=yt.y)return!0;const bt=[new E(Je,et),new E(Je,Pt),new E(xt,Pt),new E(xt,et)];if(Pe.length>2){for(const yt of bt)if(tf(Pe,yt))return!0}for(let yt=0;yt(we||(we=ql(Pe)),Je.queryIntersectsFeature(P,Pe,et,we,this.z,o.transform,w,o.pixelPosMatrix)))}return Y}loadMatchingFeature(o,h,p,_,x,w,I,P,k,N,B){const $=this.bucketLayerIDs[h];if(w&&!function(le,ge){for(let De=0;De=0)return!0;return!1}(w,$))return;const H=this.sourceLayerCoder.decode(p),Y=this.vtLayers[H].feature(_);if(x.needGeometry){const le=$l(Y,!0);if(!x.filter(new yr(this.tileID.overscaledZ),le,this.tileID.canonical))return}else if(!x.filter(new yr(this.tileID.overscaledZ),Y))return;const te=this.getId(Y,H);for(let le=0;le<$.length;le++){const ge=$[le];if(w&&w.indexOf(ge)<0)continue;const De=P[ge];if(!De)continue;let we={};te&&N&&(we=N.getState(De.sourceLayer||"_geojsonTileLayer",te));const Pe=re({},k[ge]);Pe.paint=_x(Pe.paint,De.paint,Y,we,I),Pe.layout=_x(Pe.layout,De.layout,Y,we,I);const Je=!B||B(Y,De,we);if(!Je)continue;const et=new mx(Y,this.z,this.x,this.y,te);et.layer=Pe;let xt=o[ge];xt===void 0&&(xt=o[ge]=[]),xt.push({featureIndex:_,feature:et,intersectionZ:Je})}}lookupSymbolFeatures(o,h,p,_,x,w,I,P){const k={};this.loadVTLayers();const N=Nh(x);for(const B of o)this.loadMatchingFeature(k,p,_,B,N,w,I,P,h);return k}hasLayer(o){for(const h of this.bucketLayerIDs)for(const p of h)if(o===p)return!0;return!1}getId(o,h){let p=o.id;return this.promoteId&&(p=o.properties[typeof this.promoteId=="string"?this.promoteId:this.promoteId[h]],typeof p=="boolean"&&(p=Number(p))),p}}function _x(u,o,h,p,_){return ae(u,(x,w)=>{const I=o instanceof Mc?o.get(w):null;return I&&I.evaluate?I.evaluate(h,p,_):I})}function yx(u){let o=1/0,h=1/0,p=-1/0,_=-1/0;for(const x of u)o=Math.min(o,x.x),h=Math.min(h,x.y),p=Math.max(p,x.x),_=Math.max(_,x.y);return{minX:o,minY:h,maxX:p,maxY:_}}function YL(u,o){return o-u}function vx(u,o,h,p,_){const x=[];for(let w=0;w=p&&B.x>=p||(N.x>=p?N=new E(p,N.y+(p-N.x)/(B.x-N.x)*(B.y-N.y))._round():B.x>=p&&(B=new E(p,N.y+(p-N.x)/(B.x-N.x)*(B.y-N.y))._round()),N.y>=_&&B.y>=_||(N.y>=_?N=new E(N.x+(_-N.y)/(B.y-N.y)*(B.x-N.x),_)._round():B.y>=_&&(B=new E(N.x+(_-N.y)/(B.y-N.y)*(B.x-N.x),_)._round()),P&&N.equals(P[P.length-1])||(P=[N],x.push(P)),P.push(B)))))}}return x}Et("FeatureIndex",gx,{omit:["rawTileData","sourceLayerCoder"]});class Ru extends E{constructor(o,h,p,_){super(o,h),this.angle=p,_!==void 0&&(this.segment=_)}clone(){return new Ru(this.x,this.y,this.angle,this.segment)}}function bx(u,o,h,p,_){if(o.segment===void 0||h===0)return!0;let x=o,w=o.segment+1,I=0;for(;I>-h/2;){if(w--,w<0)return!1;I-=u[w].dist(x),x=u[w]}I+=u[w].dist(u[w+1]),w++;const P=[];let k=0;for(;Ip;)k-=P.shift().angleDelta;if(k>_)return!1;w++,I+=N.dist(B)}return!0}function xx(u){let o=0;for(let h=0;hk){const Y=(k-P)/H,te=lo.number(B.x,$.x,Y),le=lo.number(B.y,$.y,Y),ge=new Ru(te,le,$.angleTo(B),N);return ge._round(),!w||bx(u,ge,I,w,o)?ge:void 0}P+=H}}function JL(u,o,h,p,_,x,w,I,P){const k=wx(p,x,w),N=Sx(p,_),B=N*w,$=u[0].x===0||u[0].x===P||u[0].y===0||u[0].y===P;return o-B=0&&Pe=0&&Je=0&&$+k<=N){const et=new Ru(Pe,Je,De,Y);et._round(),p&&!bx(u,et,x,p,_)||H.push(et)}}B+=ge}return I||H.length||w||(H=Ex(u,B/2,h,p,_,x,w,!0,P)),H}Et("Anchor",Ru);const cf=qo;function Ix(u,o,h,p){const _=[],x=u.image,w=x.pixelRatio,I=x.paddedRect.w-2*cf,P=x.paddedRect.h-2*cf,k=u.right-u.left,N=u.bottom-u.top,B=x.stretchX||[[0,I]],$=x.stretchY||[[0,P]],H=(ht,Ct)=>ht+Ct[1]-Ct[0],Y=B.reduce(H,0),te=$.reduce(H,0),le=I-Y,ge=P-te;let De=0,we=Y,Pe=0,Je=te,et=0,xt=le,Pt=0,bt=ge;if(x.content&&p){const ht=x.content;De=Ig(B,0,ht[0]),Pe=Ig($,0,ht[1]),we=Ig(B,ht[0],ht[2]),Je=Ig($,ht[1],ht[3]),et=ht[0]-De,Pt=ht[1]-Pe,xt=ht[2]-ht[0]-we,bt=ht[3]-ht[1]-Je}const yt=(ht,Ct,gt,ot)=>{const Vt=Cg(ht.stretch-De,we,k,u.left),kt=Tg(ht.fixed-et,xt,ht.stretch,Y),vn=Cg(Ct.stretch-Pe,Je,N,u.top),pr=Tg(Ct.fixed-Pt,bt,Ct.stretch,te),br=Cg(gt.stretch-De,we,k,u.left),yi=Tg(gt.fixed-et,xt,gt.stretch,Y),ps=Cg(ot.stretch-Pe,Je,N,u.top),Co=Tg(ot.fixed-Pt,bt,ot.stretch,te),li=new E(Vt,vn),zi=new E(br,vn),Zi=new E(br,ps),To=new E(Vt,ps),Lo=new E(kt/w,pr/w),vi=new E(yi/w,Co/w),bi=o*Math.PI/180;if(bi){const ho=Math.sin(bi),$o=Math.cos(bi),Wo=[$o,-ho,ho,$o];li._matMult(Wo),zi._matMult(Wo),To._matMult(Wo),Zi._matMult(Wo)}const co=ht.stretch+ht.fixed,Po=Ct.stretch+Ct.fixed;return{tl:li,tr:zi,bl:To,br:Zi,tex:{x:x.paddedRect.x+cf+co,y:x.paddedRect.y+cf+Po,w:gt.stretch+gt.fixed-co,h:ot.stretch+ot.fixed-Po},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:Lo,pixelOffsetBR:vi,minFontScaleX:xt/w/k,minFontScaleY:bt/w/N,isSDF:h}};if(p&&(x.stretchX||x.stretchY)){const ht=Cx(B,le,Y),Ct=Cx($,ge,te);for(let gt=0;gt0&&(Y=Math.max(10,Y),this.circleDiameter=Y)}else{let B=w.top*I-P[0],$=w.bottom*I+P[2],H=w.left*I-P[3],Y=w.right*I+P[1];const te=w.collisionPadding;if(te&&(H-=te[0]*I,B-=te[1]*I,Y+=te[2]*I,$+=te[3]*I),N){const le=new E(H,B),ge=new E(Y,B),De=new E(H,$),we=new E(Y,$),Pe=N*Math.PI/180;le._rotate(Pe),ge._rotate(Pe),De._rotate(Pe),we._rotate(Pe),H=Math.min(le.x,ge.x,De.x,we.x),Y=Math.max(le.x,ge.x,De.x,we.x),B=Math.min(le.y,ge.y,De.y,we.y),$=Math.max(le.y,ge.y,De.y,we.y)}o.emplaceBack(h.x,h.y,H,B,Y,$,p,_,x)}this.boxEndIndex=o.length}}class QL{constructor(o=[],h=eP){if(this.data=o,this.length=this.data.length,this.compare=h,this.length>0)for(let p=(this.length>>1)-1;p>=0;p--)this._down(p)}push(o){this.data.push(o),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const o=this.data[0],h=this.data.pop();return this.length--,this.length>0&&(this.data[0]=h,this._down(0)),o}peek(){return this.data[0]}_up(o){const{data:h,compare:p}=this,_=h[o];for(;o>0;){const x=o-1>>1,w=h[x];if(p(_,w)>=0)break;h[o]=w,o=x}h[o]=_}_down(o){const{data:h,compare:p}=this,_=this.length>>1,x=h[o];for(;o<_;){let w=1+(o<<1),I=h[w];const P=w+1;if(P=0)break;h[o]=I,o=w}h[o]=x}}function eP(u,o){return uo?1:0}function tP(u,o=1,h=!1){let p=1/0,_=1/0,x=-1/0,w=-1/0;const I=u[0];for(let H=0;Hx)&&(x=Y.x),(!H||Y.y>w)&&(w=Y.y)}const P=Math.min(x-p,w-_);let k=P/2;const N=new QL([],nP);if(P===0)return new E(p,_);for(let H=p;HB.d||!B.d)&&(B=H,h&&console.log("found best %d after %d probes",Math.round(1e4*H.d)/1e4,$)),H.max-B.d<=o||(k=H.h/2,N.push(new hf(H.p.x-k,H.p.y-k,k,u)),N.push(new hf(H.p.x+k,H.p.y-k,k,u)),N.push(new hf(H.p.x-k,H.p.y+k,k,u)),N.push(new hf(H.p.x+k,H.p.y+k,k,u)),$+=4)}return h&&(console.log(`num probes: ${$}`),console.log(`best distance: ${B.d}`)),B.p}function nP(u,o){return o.max-u.max}function hf(u,o,h,p){this.p=new E(u,o),this.h=h,this.d=function(_,x){let w=!1,I=1/0;for(let P=0;P_.y!=Y.y>_.y&&_.x<(Y.x-H.x)*(_.y-H.y)/(Y.y-H.y)+H.x&&(w=!w),I=Math.min(I,ub(_,H,Y))}}return(w?1:-1)*Math.sqrt(I)}(this.p,p),this.max=this.d+this.h*Math.SQRT2}var Wi;c.ap=void 0,(Wi=c.ap||(c.ap={}))[Wi.center=1]="center",Wi[Wi.left=2]="left",Wi[Wi.right=3]="right",Wi[Wi.top=4]="top",Wi[Wi.bottom=5]="bottom",Wi[Wi["top-left"]=6]="top-left",Wi[Wi["top-right"]=7]="top-right",Wi[Wi["bottom-left"]=8]="bottom-left",Wi[Wi["bottom-right"]=9]="bottom-right";const Nu=7,v0=Number.POSITIVE_INFINITY;function Tx(u,o){return o[1]!==v0?function(h,p,_){let x=0,w=0;switch(p=Math.abs(p),_=Math.abs(_),h){case"top-right":case"top-left":case"top":w=_-Nu;break;case"bottom-right":case"bottom-left":case"bottom":w=-_+Nu}switch(h){case"top-right":case"bottom-right":case"right":x=-p;break;case"top-left":case"bottom-left":case"left":x=p}return[x,w]}(u,o[0],o[1]):function(h,p){let _=0,x=0;p<0&&(p=0);const w=p/Math.SQRT2;switch(h){case"top-right":case"top-left":x=w-Nu;break;case"bottom-right":case"bottom-left":x=-w+Nu;break;case"bottom":x=-p+Nu;break;case"top":x=p-Nu}switch(h){case"top-right":case"bottom-right":_=-w;break;case"top-left":case"bottom-left":_=w;break;case"left":_=p;break;case"right":_=-p}return[_,x]}(u,o[0])}function Lx(u,o,h){var p;const _=u.layout,x=(p=_.get("text-variable-anchor-offset"))===null||p===void 0?void 0:p.evaluate(o,{},h);if(x){const I=x.values,P=[];for(let k=0;k$*_i);N.startsWith("top")?B[1]-=Nu:N.startsWith("bottom")&&(B[1]+=Nu),P[k+1]=B}return new us(P)}const w=_.get("text-variable-anchor");if(w){let I;I=u._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[_.get("text-radial-offset").evaluate(o,{},h)*_i,v0]:_.get("text-offset").evaluate(o,{},h).map(k=>k*_i);const P=[];for(const k of w)P.push(k,Tx(k,I));return new us(P)}return null}function b0(u){switch(u){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function rP(u,o,h,p,_,x,w,I,P,k,N){let B=x.textMaxSize.evaluate(o,{});B===void 0&&(B=w);const $=u.layers[0].layout,H=$.get("icon-offset").evaluate(o,{},N),Y=Mx(h.horizontal),te=w/24,le=u.tilePixelRatio*te,ge=u.tilePixelRatio*B/24,De=u.tilePixelRatio*I,we=u.tilePixelRatio*$.get("symbol-spacing"),Pe=$.get("text-padding")*u.tilePixelRatio,Je=function(ot,Vt,kt,vn=1){const pr=ot.get("icon-padding").evaluate(Vt,{},kt),br=pr&&pr.values;return[br[0]*vn,br[1]*vn,br[2]*vn,br[3]*vn]}($,o,N,u.tilePixelRatio),et=$.get("text-max-angle")/180*Math.PI,xt=$.get("text-rotation-alignment")!=="viewport"&&$.get("symbol-placement")!=="point",Pt=$.get("icon-rotation-alignment")==="map"&&$.get("symbol-placement")!=="point",bt=$.get("symbol-placement"),yt=we/2,ht=$.get("icon-text-fit");let Ct;p&&ht!=="none"&&(u.allowVerticalPlacement&&h.vertical&&(Ct=Qb(p,h.vertical,ht,$.get("icon-text-fit-padding"),H,te)),Y&&(p=Qb(p,Y,ht,$.get("icon-text-fit-padding"),H,te)));const gt=(ot,Vt)=>{Vt.x<0||Vt.x>=Gr||Vt.y<0||Vt.y>=Gr||function(kt,vn,pr,br,yi,ps,Co,li,zi,Zi,To,Lo,vi,bi,co,Po,ho,$o,Wo,xi,En,fo,Hi,wi,ia){const Da=kt.addToLineVertexArray(vn,pr);let Ra,Zl,oa,Ds,Zo=0,Hl=0,pd=0,Rx=0,L0=-1,P0=-1;const Xl={};let Nx=Or("");if(kt.allowVerticalPlacement&&br.vertical){const po=li.layout.get("text-rotate").evaluate(En,{},wi)+90;oa=new Lg(zi,vn,Zi,To,Lo,br.vertical,vi,bi,co,po),Co&&(Ds=new Lg(zi,vn,Zi,To,Lo,Co,ho,$o,co,po))}if(yi){const po=li.layout.get("icon-rotate").evaluate(En,{}),Rs=li.layout.get("icon-text-fit")!=="none",Bc=Ix(yi,po,Hi,Rs),Oa=Co?Ix(Co,po,Hi,Rs):void 0;Zl=new Lg(zi,vn,Zi,To,Lo,yi,ho,$o,!1,po),Zo=4*Bc.length;const Vc=kt.iconSizeData;let fl=null;Vc.kind==="source"?(fl=[hl*li.layout.get("icon-size").evaluate(En,{})],fl[0]>ku&&Qe(`${kt.layerIds[0]}: Value for "icon-size" is >= ${ud}. Reduce your "icon-size".`)):Vc.kind==="composite"&&(fl=[hl*fo.compositeIconSizes[0].evaluate(En,{},wi),hl*fo.compositeIconSizes[1].evaluate(En,{},wi)],(fl[0]>ku||fl[1]>ku)&&Qe(`${kt.layerIds[0]}: Value for "icon-size" is >= ${ud}. Reduce your "icon-size".`)),kt.addSymbols(kt.icon,Bc,fl,xi,Wo,En,c.ah.none,vn,Da.lineStartIndex,Da.lineLength,-1,wi),L0=kt.icon.placedSymbolArray.length-1,Oa&&(Hl=4*Oa.length,kt.addSymbols(kt.icon,Oa,fl,xi,Wo,En,c.ah.vertical,vn,Da.lineStartIndex,Da.lineLength,-1,wi),P0=kt.icon.placedSymbolArray.length-1)}const Ox=Object.keys(br.horizontal);for(const po of Ox){const Rs=br.horizontal[po];if(!Ra){Nx=Or(Rs.text);const Oa=li.layout.get("text-rotate").evaluate(En,{},wi);Ra=new Lg(zi,vn,Zi,To,Lo,Rs,vi,bi,co,Oa)}const Bc=Rs.positionedLines.length===1;if(pd+=Px(kt,vn,Rs,ps,li,co,En,Po,Da,br.vertical?c.ah.horizontal:c.ah.horizontalOnly,Bc?Ox:[po],Xl,L0,fo,wi),Bc)break}br.vertical&&(Rx+=Px(kt,vn,br.vertical,ps,li,co,En,Po,Da,c.ah.vertical,["vertical"],Xl,P0,fo,wi));const sP=Ra?Ra.boxStartIndex:kt.collisionBoxArray.length,aP=Ra?Ra.boxEndIndex:kt.collisionBoxArray.length,lP=oa?oa.boxStartIndex:kt.collisionBoxArray.length,uP=oa?oa.boxEndIndex:kt.collisionBoxArray.length,cP=Zl?Zl.boxStartIndex:kt.collisionBoxArray.length,hP=Zl?Zl.boxEndIndex:kt.collisionBoxArray.length,fP=Ds?Ds.boxStartIndex:kt.collisionBoxArray.length,pP=Ds?Ds.boxEndIndex:kt.collisionBoxArray.length;let Na=-1;const Mg=(po,Rs)=>po&&po.circleDiameter?Math.max(po.circleDiameter,Rs):Rs;Na=Mg(Ra,Na),Na=Mg(oa,Na),Na=Mg(Zl,Na),Na=Mg(Ds,Na);const zx=Na>-1?1:0;zx&&(Na*=ia/_i),kt.glyphOffsetArray.length>=uf.MAX_GLYPHS&&Qe("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),En.sortKey!==void 0&&kt.addToSortKeyRanges(kt.symbolInstances.length,En.sortKey);const dP=Lx(li,En,wi),[mP,gP]=function(po,Rs){const Bc=po.length,Oa=Rs==null?void 0:Rs.values;if((Oa==null?void 0:Oa.length)>0)for(let Vc=0;Vc=0?Xl.right:-1,Xl.center>=0?Xl.center:-1,Xl.left>=0?Xl.left:-1,Xl.vertical||-1,L0,P0,Nx,sP,aP,lP,uP,cP,hP,fP,pP,Zi,pd,Rx,Zo,Hl,zx,0,vi,Na,mP,gP)}(u,Vt,ot,h,p,_,Ct,u.layers[0],u.collisionBoxArray,o.index,o.sourceLayerIndex,u.index,le,[Pe,Pe,Pe,Pe],xt,P,De,Je,Pt,H,o,x,k,N,w)};if(bt==="line")for(const ot of vx(o.geometry,0,0,Gr,Gr)){const Vt=JL(ot,we,et,h.vertical||Y,p,24,ge,u.overscaling,Gr);for(const kt of Vt)Y&&iP(u,Y.text,yt,kt)||gt(ot,kt)}else if(bt==="line-center"){for(const ot of o.geometry)if(ot.length>1){const Vt=KL(ot,et,h.vertical||Y,p,24,ge);Vt&>(ot,Vt)}}else if(o.type==="Polygon")for(const ot of Jy(o.geometry,0)){const Vt=tP(ot,16);gt(ot[0],new Ru(Vt.x,Vt.y,0))}else if(o.type==="LineString")for(const ot of o.geometry)gt(ot,new Ru(ot[0].x,ot[0].y,0));else if(o.type==="Point")for(const ot of o.geometry)for(const Vt of ot)gt([Vt],new Ru(Vt.x,Vt.y,0))}function Px(u,o,h,p,_,x,w,I,P,k,N,B,$,H,Y){const te=function(De,we,Pe,Je,et,xt,Pt,bt){const yt=Je.layout.get("text-rotate").evaluate(xt,{})*Math.PI/180,ht=[];for(const Ct of we.positionedLines)for(const gt of Ct.positionedGlyphs){if(!gt.rect)continue;const ot=gt.rect||{};let Vt=Wb+1,kt=!0,vn=1,pr=0;const br=(et||bt)&>.vertical,yi=gt.metrics.advance*gt.scale/2;if(bt&&we.verticalizable&&(pr=Ct.lineOffset/2-(gt.imageName?-(_i-gt.metrics.width*gt.scale)/2:(gt.scale-1)*_i)),gt.imageName){const xi=Pt[gt.imageName];kt=xi.sdf,vn=xi.pixelRatio,Vt=qo/vn}const ps=et?[gt.x+yi,gt.y]:[0,0];let Co=et?[0,0]:[gt.x+yi+Pe[0],gt.y+Pe[1]-pr],li=[0,0];br&&(li=Co,Co=[0,0]);const zi=gt.metrics.isDoubleResolution?2:1,Zi=(gt.metrics.left-Vt)*gt.scale-yi+Co[0],To=(-gt.metrics.top-Vt)*gt.scale+Co[1],Lo=Zi+ot.w/zi*gt.scale/vn,vi=To+ot.h/zi*gt.scale/vn,bi=new E(Zi,To),co=new E(Lo,To),Po=new E(Zi,vi),ho=new E(Lo,vi);if(br){const xi=new E(-yi,yi-ad),En=-Math.PI/2,fo=_i/2-yi,Hi=new E(5-ad-fo,-(gt.imageName?fo:0)),wi=new E(...li);bi._rotateAround(En,xi)._add(Hi)._add(wi),co._rotateAround(En,xi)._add(Hi)._add(wi),Po._rotateAround(En,xi)._add(Hi)._add(wi),ho._rotateAround(En,xi)._add(Hi)._add(wi)}if(yt){const xi=Math.sin(yt),En=Math.cos(yt),fo=[En,-xi,xi,En];bi._matMult(fo),co._matMult(fo),Po._matMult(fo),ho._matMult(fo)}const $o=new E(0,0),Wo=new E(0,0);ht.push({tl:bi,tr:co,bl:Po,br:ho,tex:ot,writingMode:we.writingMode,glyphOffset:ps,sectionIndex:gt.sectionIndex,isSDF:kt,pixelOffsetTL:$o,pixelOffsetBR:Wo,minFontScaleX:0,minFontScaleY:0})}return ht}(0,h,I,_,x,w,p,u.allowVerticalPlacement),le=u.textSizeData;let ge=null;le.kind==="source"?(ge=[hl*_.layout.get("text-size").evaluate(w,{})],ge[0]>ku&&Qe(`${u.layerIds[0]}: Value for "text-size" is >= ${ud}. Reduce your "text-size".`)):le.kind==="composite"&&(ge=[hl*H.compositeTextSizes[0].evaluate(w,{},Y),hl*H.compositeTextSizes[1].evaluate(w,{},Y)],(ge[0]>ku||ge[1]>ku)&&Qe(`${u.layerIds[0]}: Value for "text-size" is >= ${ud}. Reduce your "text-size".`)),u.addSymbols(u.text,te,ge,I,x,w,k,o,P.lineStartIndex,P.lineLength,$,Y);for(const De of N)B[De]=u.text.placedSymbolArray.length-1;return 4*te.length}function Mx(u){for(const o in u)return u[o];return null}function iP(u,o,h,p){const _=u.compareText;if(o in _){const x=_[o];for(let w=x.length-1;w>=0;w--)if(p.dist(x[w])>4;if(_!==1)throw new Error(`Got v${_} data when expected v1.`);const x=Ax[15&p];if(!x)throw new Error("Unrecognized array type.");const[w]=new Uint16Array(o,2,1),[I]=new Uint32Array(o,4,1);return new x0(I,w,x,o)}constructor(o,h=64,p=Float64Array,_){if(isNaN(o)||o<0)throw new Error(`Unpexpected numItems value: ${o}.`);this.numItems=+o,this.nodeSize=Math.min(Math.max(+h,2),65535),this.ArrayType=p,this.IndexArrayType=o<65536?Uint16Array:Uint32Array;const x=Ax.indexOf(this.ArrayType),w=2*o*this.ArrayType.BYTES_PER_ELEMENT,I=o*this.IndexArrayType.BYTES_PER_ELEMENT,P=(8-I%8)%8;if(x<0)throw new Error(`Unexpected typed array class: ${p}.`);_&&_ instanceof ArrayBuffer?(this.data=_,this.ids=new this.IndexArrayType(this.data,8,o),this.coords=new this.ArrayType(this.data,8+I+P,2*o),this._pos=2*o,this._finished=!0):(this.data=new ArrayBuffer(8+w+I+P),this.ids=new this.IndexArrayType(this.data,8,o),this.coords=new this.ArrayType(this.data,8+I+P,2*o),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+x]),new Uint16Array(this.data,2,1)[0]=h,new Uint32Array(this.data,4,1)[0]=o)}add(o,h){const p=this._pos>>1;return this.ids[p]=p,this.coords[this._pos++]=o,this.coords[this._pos++]=h,p}finish(){const o=this._pos>>1;if(o!==this.numItems)throw new Error(`Added ${o} items when expected ${this.numItems}.`);return w0(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(o,h,p,_){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:x,coords:w,nodeSize:I}=this,P=[0,x.length-1,0],k=[];for(;P.length;){const N=P.pop()||0,B=P.pop()||0,$=P.pop()||0;if(B-$<=I){for(let le=$;le<=B;le++){const ge=w[2*le],De=w[2*le+1];ge>=o&&ge<=p&&De>=h&&De<=_&&k.push(x[le])}continue}const H=$+B>>1,Y=w[2*H],te=w[2*H+1];Y>=o&&Y<=p&&te>=h&&te<=_&&k.push(x[H]),(N===0?o<=Y:h<=te)&&(P.push($),P.push(H-1),P.push(1-N)),(N===0?p>=Y:_>=te)&&(P.push(H+1),P.push(B),P.push(1-N))}return k}within(o,h,p){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:_,coords:x,nodeSize:w}=this,I=[0,_.length-1,0],P=[],k=p*p;for(;I.length;){const N=I.pop()||0,B=I.pop()||0,$=I.pop()||0;if(B-$<=w){for(let le=$;le<=B;le++)Dx(x[2*le],x[2*le+1],o,h)<=k&&P.push(_[le]);continue}const H=$+B>>1,Y=x[2*H],te=x[2*H+1];Dx(Y,te,o,h)<=k&&P.push(_[H]),(N===0?o-p<=Y:h-p<=te)&&(I.push($),I.push(H-1),I.push(1-N)),(N===0?o+p>=Y:h+p>=te)&&(I.push(H+1),I.push(B),I.push(1-N))}return P}}function w0(u,o,h,p,_,x){if(_-p<=h)return;const w=p+_>>1;kx(u,o,w,p,_,x),w0(u,o,h,p,w-1,1-x),w0(u,o,h,w+1,_,1-x)}function kx(u,o,h,p,_,x){for(;_>p;){if(_-p>600){const k=_-p+1,N=h-p+1,B=Math.log(k),$=.5*Math.exp(2*B/3),H=.5*Math.sqrt(B*$*(k-$)/k)*(N-k/2<0?-1:1);kx(u,o,h,Math.max(p,Math.floor(h-N*$/k+H)),Math.min(_,Math.floor(h+(k-N)*$/k+H)),x)}const w=o[2*h+x];let I=p,P=_;for(hd(u,o,p,h),o[2*_+x]>w&&hd(u,o,p,_);Iw;)P--}o[2*p+x]===w?hd(u,o,p,P):(P++,hd(u,o,P,_)),P<=h&&(p=P+1),h<=P&&(_=P-1)}}function hd(u,o,h,p){S0(u,h,p),S0(o,2*h,2*p),S0(o,2*h+1,2*p+1)}function S0(u,o,h){const p=u[o];u[o]=u[h],u[h]=p}function Dx(u,o,h,p){const _=u-h,x=o-p;return _*_+x*x}var E0;c.bd=void 0,(E0=c.bd||(c.bd={})).create="create",E0.load="load",E0.fullLoad="fullLoad";let Pg=null,fd=[];const I0=1e3/60,C0="loadTime",T0="fullLoadTime",oP={mark(u){performance.mark(u)},frame(u){const o=u;Pg!=null&&fd.push(o-Pg),Pg=o},clearMetrics(){Pg=null,fd=[],performance.clearMeasures(C0),performance.clearMeasures(T0);for(const u in c.bd)performance.clearMarks(c.bd[u])},getPerformanceMetrics(){performance.measure(C0,c.bd.create,c.bd.load),performance.measure(T0,c.bd.create,c.bd.fullLoad);const u=performance.getEntriesByName(C0)[0].duration,o=performance.getEntriesByName(T0)[0].duration,h=fd.length,p=1/(fd.reduce((x,w)=>x+w,0)/h/1e3),_=fd.filter(x=>x>I0).reduce((x,w)=>x+(w-I0)/I0,0);return{loadTime:u,fullLoadTime:o,fps:p,percentDroppedFrames:_/(h+_)*100,totalFrames:h}}};c.$=pt,c.A=nf,c.B=function(u){if(it==null){const o=u.navigator?u.navigator.userAgent:null;it=!!u.safari||!(!o||!(/\b(iPad|iPhone|iPod)\b/.test(o)||o.match("Safari")&&!o.match("Chrome")))}return it},c.C=class{constructor(u,o){this.target=u,this.mapId=o,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new XL(()=>this.process()),this.subscription=function(h,p,_,x){return h.addEventListener(p,_,!1),{unsubscribe:()=>{h.removeEventListener(p,_,!1)}}}(this.target,"message",h=>this.receive(h)),this.globalScope=Ke(self)?u:window}registerMessageHandler(u,o){this.messageHandlers[u]=o}sendAsync(u,o){return new Promise((h,p)=>{const _=Math.round(1e18*Math.random()).toString(36).substring(0,10);this.resolveRejects[_]={resolve:h,reject:p},o&&o.signal.addEventListener("abort",()=>{delete this.resolveRejects[_];const I={id:_,type:"",origin:location.origin,targetMapId:u.targetMapId,sourceMapId:this.mapId};this.target.postMessage(I)},{once:!0});const x=[],w=Object.assign(Object.assign({},u),{id:_,sourceMapId:this.mapId,origin:location.origin,data:Cu(u.data,x)});this.target.postMessage(w,{transfer:x})})}receive(u){const o=u.data,h=o.id;if(!(o.origin!=="file://"&&location.origin!=="file://"&&o.origin!==location.origin||o.targetMapId&&this.mapId!==o.targetMapId)){if(o.type===""){delete this.tasks[h];const p=this.abortControllers[h];return delete this.abortControllers[h],void(p&&p.abort())}if(Ke(self)||o.mustQueue)return this.tasks[h]=o,this.taskQueue.push(h),void this.invoker.trigger();this.processTask(h,o)}}process(){if(this.taskQueue.length===0)return;const u=this.taskQueue.shift(),o=this.tasks[u];delete this.tasks[u],this.taskQueue.length>0&&this.invoker.trigger(),o&&this.processTask(u,o)}processTask(u,o){return l(this,void 0,void 0,function*(){if(o.type===""){const _=this.resolveRejects[u];return delete this.resolveRejects[u],_?void(o.error?_.reject(Tu(o.error)):_.resolve(Tu(o.data))):void 0}if(!this.messageHandlers[o.type])return void this.completeTask(u,new Error(`Could not find a registered handler for ${o.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));const h=Tu(o.data),p=new AbortController;this.abortControllers[u]=p;try{const _=yield this.messageHandlers[o.type](o.sourceMapId,h,p);this.completeTask(u,null,_)}catch(_){this.completeTask(u,_)}})}completeTask(u,o,h){const p=[];delete this.abortControllers[u];const _={id:u,type:"",sourceMapId:this.mapId,origin:location.origin,error:o?Cu(o):null,data:Cu(h,p)};this.target.postMessage(_,{transfer:p})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},c.D=Dt,c.E=Sr,c.F=function(){var u=new nf(16);return nf!=Float32Array&&(u[1]=0,u[2]=0,u[3]=0,u[4]=0,u[6]=0,u[7]=0,u[8]=0,u[9]=0,u[11]=0,u[12]=0,u[13]=0,u[14]=0),u[0]=1,u[5]=1,u[10]=1,u[15]=1,u},c.G=or,c.H=function(u,o,h){var p,_,x,w,I,P,k,N,B,$,H,Y,te=h[0],le=h[1],ge=h[2];return o===u?(u[12]=o[0]*te+o[4]*le+o[8]*ge+o[12],u[13]=o[1]*te+o[5]*le+o[9]*ge+o[13],u[14]=o[2]*te+o[6]*le+o[10]*ge+o[14],u[15]=o[3]*te+o[7]*le+o[11]*ge+o[15]):(_=o[1],x=o[2],w=o[3],I=o[4],P=o[5],k=o[6],N=o[7],B=o[8],$=o[9],H=o[10],Y=o[11],u[0]=p=o[0],u[1]=_,u[2]=x,u[3]=w,u[4]=I,u[5]=P,u[6]=k,u[7]=N,u[8]=B,u[9]=$,u[10]=H,u[11]=Y,u[12]=p*te+I*le+B*ge+o[12],u[13]=_*te+P*le+$*ge+o[13],u[14]=x*te+k*le+H*ge+o[14],u[15]=w*te+N*le+Y*ge+o[15]),u},c.I=l0,c.J=function(u,o,h){var p=h[0],_=h[1],x=h[2];return u[0]=o[0]*p,u[1]=o[1]*p,u[2]=o[2]*p,u[3]=o[3]*p,u[4]=o[4]*_,u[5]=o[5]*_,u[6]=o[6]*_,u[7]=o[7]*_,u[8]=o[8]*x,u[9]=o[9]*x,u[10]=o[10]*x,u[11]=o[11]*x,u[12]=o[12],u[13]=o[13],u[14]=o[14],u[15]=o[15],u},c.K=pb,c.L=function(u,o){const h={};for(let p=0;p{const o=window.document.createElement("video");return o.muted=!0,new Promise(h=>{o.onloadstart=()=>{h(o)};for(const p of u){const _=window.document.createElement("source");Jt(p)||(o.crossOrigin="Anonymous"),_.src=p,o.appendChild(_)}})},c.a3=function(){return ye++},c.a4=y,c.a5=uf,c.a6=Nh,c.a7=$l,c.a8=yr,c.a9=mx,c.aA=me,c.aB=function(u,o){if(!u)return[{command:"setStyle",args:[o]}];let h=[];try{if(!gn(u.version,o.version))return[{command:"setStyle",args:[o]}];gn(u.center,o.center)||h.push({command:"setCenter",args:[o.center]}),gn(u.zoom,o.zoom)||h.push({command:"setZoom",args:[o.zoom]}),gn(u.bearing,o.bearing)||h.push({command:"setBearing",args:[o.bearing]}),gn(u.pitch,o.pitch)||h.push({command:"setPitch",args:[o.pitch]}),gn(u.sprite,o.sprite)||h.push({command:"setSprite",args:[o.sprite]}),gn(u.glyphs,o.glyphs)||h.push({command:"setGlyphs",args:[o.glyphs]}),gn(u.transition,o.transition)||h.push({command:"setTransition",args:[o.transition]}),gn(u.light,o.light)||h.push({command:"setLight",args:[o.light]}),gn(u.terrain,o.terrain)||h.push({command:"setTerrain",args:[o.terrain]}),gn(u.sky,o.sky)||h.push({command:"setSky",args:[o.sky]});const p={},_=[];(function(w,I,P,k){let N;for(N in I=I||{},w=w||{})Object.prototype.hasOwnProperty.call(w,N)&&(Object.prototype.hasOwnProperty.call(I,N)||Is(N,P,k));for(N in I)Object.prototype.hasOwnProperty.call(I,N)&&(Object.prototype.hasOwnProperty.call(w,N)?gn(w[N],I[N])||(w[N].type==="geojson"&&I[N].type==="geojson"&&tl(w,I,N)?ar(P,{command:"setGeoJSONSourceData",args:[N,I[N].data]}):Ys(N,I,P,k)):Fo(N,I,P))})(u.sources,o.sources,_,p);const x=[];u.layers&&u.layers.forEach(w=>{"source"in w&&p[w.source]?h.push({command:"removeLayer",args:[w.id]}):x.push(w)}),h=h.concat(_),function(w,I,P){I=I||[];const k=(w=w||[]).map(Rl),N=I.map(Rl),B=w.reduce(Cs,{}),$=I.reduce(Cs,{}),H=k.slice(),Y=Object.create(null);let te,le,ge,De,we;for(let Pe=0,Je=0;Pe@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(h,p,_,x)=>{const w=_||x;return o[p]=!w||w.toLowerCase(),""}),o["max-age"]){const h=parseInt(o["max-age"],10);isNaN(h)?delete o["max-age"]:o["max-age"]=h}return o},c.ab=function(u,o){const h=[];for(const p in u)p in o||h.push(p);return h},c.ac=J,c.ad=function(u,o,h){var p=Math.sin(h),_=Math.cos(h),x=o[0],w=o[1],I=o[2],P=o[3],k=o[4],N=o[5],B=o[6],$=o[7];return o!==u&&(u[8]=o[8],u[9]=o[9],u[10]=o[10],u[11]=o[11],u[12]=o[12],u[13]=o[13],u[14]=o[14],u[15]=o[15]),u[0]=x*_+k*p,u[1]=w*_+N*p,u[2]=I*_+B*p,u[3]=P*_+$*p,u[4]=k*_-x*p,u[5]=N*_-w*p,u[6]=B*_-I*p,u[7]=$*_-P*p,u},c.ae=function(u){var o=new nf(16);return o[0]=u[0],o[1]=u[1],o[2]=u[2],o[3]=u[3],o[4]=u[4],o[5]=u[5],o[6]=u[6],o[7]=u[7],o[8]=u[8],o[9]=u[9],o[10]=u[10],o[11]=u[11],o[12]=u[12],o[13]=u[13],o[14]=u[14],o[15]=u[15],o},c.af=pg,c.ag=function(u,o){let h=0,p=0;if(u.kind==="constant")p=u.layoutSize;else if(u.kind!=="source"){const{interpolationType:_,minZoom:x,maxZoom:w}=u,I=_?J($i.interpolationFactor(_,o,x,w),0,1):0;u.kind==="camera"?p=lo.number(u.minSize,u.maxSize,I):h=I}return{uSizeT:h,uSize:p}},c.ai=function(u,{uSize:o,uSizeT:h},{lowerSize:p,upperSize:_}){return u.kind==="source"?p/hl:u.kind==="composite"?lo.number(p/hl,_/hl,h):o},c.aj=f0,c.ak=function(u,o,h,p){const _=o.y-u.y,x=o.x-u.x,w=p.y-h.y,I=p.x-h.x,P=w*x-I*_;if(P===0)return null;const k=(I*(u.y-h.y)-w*(u.x-h.x))/P;return new E(u.x+k*x,u.y+k*_)},c.al=vx,c.am=Zp,c.an=$y,c.ao=_i,c.aq=h0,c.ar=function(u,o){var h=o[0],p=o[1],_=o[2],x=o[3],w=o[4],I=o[5],P=o[6],k=o[7],N=o[8],B=o[9],$=o[10],H=o[11],Y=o[12],te=o[13],le=o[14],ge=o[15],De=h*I-p*w,we=h*P-_*w,Pe=h*k-x*w,Je=p*P-_*I,et=p*k-x*I,xt=_*k-x*P,Pt=N*te-B*Y,bt=N*le-$*Y,yt=N*ge-H*Y,ht=B*le-$*te,Ct=B*ge-H*te,gt=$*ge-H*le,ot=De*gt-we*Ct+Pe*ht+Je*yt-et*bt+xt*Pt;return ot?(u[0]=(I*gt-P*Ct+k*ht)*(ot=1/ot),u[1]=(_*Ct-p*gt-x*ht)*ot,u[2]=(te*xt-le*et+ge*Je)*ot,u[3]=($*et-B*xt-H*Je)*ot,u[4]=(P*yt-w*gt-k*bt)*ot,u[5]=(h*gt-_*yt+x*bt)*ot,u[6]=(le*Pe-Y*xt-ge*we)*ot,u[7]=(N*xt-$*Pe+H*we)*ot,u[8]=(w*Ct-I*yt+k*Pt)*ot,u[9]=(p*yt-h*Ct-x*Pt)*ot,u[10]=(Y*et-te*Pe+ge*De)*ot,u[11]=(B*Pe-N*et-H*De)*ot,u[12]=(I*bt-w*ht-P*Pt)*ot,u[13]=(h*ht-p*bt+_*Pt)*ot,u[14]=(te*we-Y*Je-le*De)*ot,u[15]=(N*Je-B*we+$*De)*ot,u):null},c.as=b0,c.at=c0,c.au=x0,c.av=function(){const u={},o=Be.$version;for(const h in Be.$root){const p=Be.$root[h];if(p.required){let _=null;_=h==="version"?o:p.type==="array"?[]:{},_!=null&&(u[h]=_)}}return u},c.aw=Qm,c.ax=Yn,c.ay=function(u){u=u.slice();const o=Object.create(null);for(let h=0;hot*_i)}let bt=w?"center":h.get("text-justify").evaluate(k,{},u.canonical);const yt=h.get("symbol-placement"),ht=yt==="point"?h.get("text-max-width").evaluate(k,{},u.canonical)*_i:0,Ct=()=>{u.bucket.allowVerticalPlacement&&Lu(Pe)&&(Y.vertical=bg(te,u.glyphMap,u.glyphPositions,u.imagePositions,N,ht,x,xt,"left",et,ge,c.ah.vertical,!0,yt,$,B))};if(!w&&Pt){const gt=new Set;if(bt==="auto")for(let Vt=0;Vtl(void 0,void 0,void 0,function*(){if(u.byteLength===0)return createImageBitmap(new ImageData(1,1));const o=new Blob([new Uint8Array(u)],{type:"image/png"});try{return createImageBitmap(o)}catch(h){throw new Error(`Could not load image because of ${h.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}}),c.e=re,c.f=u=>new Promise((o,h)=>{const p=new Image;p.onload=()=>{o(p),URL.revokeObjectURL(p.src),p.onload=null,window.requestAnimationFrame(()=>{p.src=Gt})},p.onerror=()=>h(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const _=new Blob([new Uint8Array(u)],{type:"image/png"});p.src=u.byteLength?URL.createObjectURL(_):Gt}),c.g=mn,c.h=(u,o)=>rt(re(u,{type:"json"}),o),c.i=Ke,c.j=It,c.k=Ne,c.l=(u,o)=>rt(re(u,{type:"arrayBuffer"}),o),c.m=rt,c.n=function(u){return new s0(u).readFields(RL,[])},c.o=Qp,c.p=Zb,c.q=Eo,c.r=Uy,c.s=Jt,c.t=Iu,c.u=vt,c.v=Be,c.w=Qe,c.x=Ul,c.y=function([u,o,h]){return o+=90,o*=Math.PI/180,h*=Math.PI/180,{x:u*Math.cos(o)*Math.sin(h),y:u*Math.sin(o)*Math.sin(h),z:u*Math.cos(h)}},c.z=lo}),i("worker",["./shared"],function(c){class l{constructor(q){this.keyCache={},q&&this.replace(q)}replace(q){this._layerConfigs={},this._layers={},this.update(q,[])}update(q,W){for(const ne of q){this._layerConfigs[ne.id]=ne;const Ce=this._layers[ne.id]=c.az(ne);Ce._featureFilter=c.a6(Ce.filter),this.keyCache[ne.id]&&delete this.keyCache[ne.id]}for(const ne of W)delete this.keyCache[ne],delete this._layerConfigs[ne],delete this._layers[ne];this.familiesBySource={};const K=c.bh(Object.values(this._layerConfigs),this.keyCache);for(const ne of K){const Ce=ne.map(He=>this._layers[He.id]),Q=Ce[0];if(Q.visibility==="none")continue;const Te=Q.source||"";let _e=this.familiesBySource[Te];_e||(_e=this.familiesBySource[Te]={});const ke=Q.sourceLayer||"_geojsonTileLayer";let Ve=_e[ke];Ve||(Ve=_e[ke]=[]),Ve.push(Ce)}}}class m{constructor(q){const W={},K=[];for(const Te in q){const _e=q[Te],ke=W[Te]={};for(const Ve in _e){const He=_e[+Ve];if(!He||He.bitmap.width===0||He.bitmap.height===0)continue;const Ye={x:0,y:0,w:He.bitmap.width+2,h:He.bitmap.height+2};K.push(Ye),ke[Ve]={rect:Ye,metrics:He.metrics}}}const{w:ne,h:Ce}=c.p(K),Q=new c.o({width:ne||1,height:Ce||1});for(const Te in q){const _e=q[Te];for(const ke in _e){const Ve=_e[+ke];if(!Ve||Ve.bitmap.width===0||Ve.bitmap.height===0)continue;const He=W[Te][ke].rect;c.o.copy(Ve.bitmap,Q,{x:0,y:0},{x:He.x+1,y:He.y+1},Ve.bitmap)}}this.image=Q,this.positions=W}}c.bi("GlyphAtlas",m);class b{constructor(q){this.tileID=new c.Q(q.tileID.overscaledZ,q.tileID.wrap,q.tileID.canonical.z,q.tileID.canonical.x,q.tileID.canonical.y),this.uid=q.uid,this.zoom=q.zoom,this.pixelRatio=q.pixelRatio,this.tileSize=q.tileSize,this.source=q.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=q.showCollisionBoxes,this.collectResourceTiming=!!q.collectResourceTiming,this.returnDependencies=!!q.returnDependencies,this.promoteId=q.promoteId,this.inFlightDependencies=[]}parse(q,W,K,ne){return c._(this,void 0,void 0,function*(){this.status="parsing",this.data=q,this.collisionBoxArray=new c.a4;const Ce=new c.bj(Object.keys(q.layers).sort()),Q=new c.bk(this.tileID,this.promoteId);Q.bucketLayerIDs=[];const Te={},_e={featureIndex:Q,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:K},ke=W.familiesBySource[this.source];for(const pn in ke){const Dr=q.layers[pn];if(!Dr)continue;Dr.version===1&&c.w(`Vector tile source "${this.source}" layer "${pn}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const di=Ce.encode(pn),ao=[];for(let xo=0;xo=Ci.maxzoom||Ci.visibility!=="none"&&(S(xo,this.zoom,K),(Te[Ci.id]=Ci.createBucket({index:Q.bucketLayerIDs.length,layers:xo,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:di,sourceID:this.source})).populate(ao,_e,this.tileID.canonical),Q.bucketLayerIDs.push(xo.map(Ks=>Ks.id)))}}const Ve=c.aE(_e.glyphDependencies,pn=>Object.keys(pn).map(Number));this.inFlightDependencies.forEach(pn=>pn==null?void 0:pn.abort()),this.inFlightDependencies=[];let He=Promise.resolve({});if(Object.keys(Ve).length){const pn=new AbortController;this.inFlightDependencies.push(pn),He=ne.sendAsync({type:"GG",data:{stacks:Ve,source:this.source,tileID:this.tileID,type:"glyphs"}},pn)}const Ye=Object.keys(_e.iconDependencies);let At=Promise.resolve({});if(Ye.length){const pn=new AbortController;this.inFlightDependencies.push(pn),At=ne.sendAsync({type:"GI",data:{icons:Ye,source:this.source,tileID:this.tileID,type:"icons"}},pn)}const Nt=Object.keys(_e.patternDependencies);let en=Promise.resolve({});if(Nt.length){const pn=new AbortController;this.inFlightDependencies.push(pn),en=ne.sendAsync({type:"GI",data:{icons:Nt,source:this.source,tileID:this.tileID,type:"patterns"}},pn)}const[rn,Cn,Kn]=yield Promise.all([He,At,en]),_r=new m(rn),ri=new c.bl(Cn,Kn);for(const pn in Te){const Dr=Te[pn];Dr instanceof c.a5?(S(Dr.layers,this.zoom,K),c.bm({bucket:Dr,glyphMap:rn,glyphPositions:_r.positions,imageMap:Cn,imagePositions:ri.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):Dr.hasPattern&&(Dr instanceof c.bn||Dr instanceof c.bo||Dr instanceof c.bp)&&(S(Dr.layers,this.zoom,K),Dr.addFeatures(_e,this.tileID.canonical,ri.patternPositions))}return this.status="done",{buckets:Object.values(Te).filter(pn=>!pn.isEmpty()),featureIndex:Q,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:_r.image,imageAtlas:ri,glyphMap:this.returnDependencies?rn:null,iconMap:this.returnDependencies?Cn:null,glyphPositions:this.returnDependencies?_r.positions:null}})}}function S(ue,q,W){const K=new c.a8(q);for(const ne of ue)ne.recalculate(K,W)}class E{constructor(q,W,K){this.actor=q,this.layerIndex=W,this.availableImages=K,this.fetching={},this.loading={},this.loaded={}}loadVectorTile(q,W){return c._(this,void 0,void 0,function*(){const K=yield c.l(q.request,W);try{return{vectorTile:new c.bq.VectorTile(new c.br(K.data)),rawData:K.data,cacheControl:K.cacheControl,expires:K.expires}}catch(ne){const Ce=new Uint8Array(K.data);let Q=`Unable to parse the tile at ${q.request.url}, `;throw Q+=Ce[0]===31&&Ce[1]===139?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${ne.messge}`,new Error(Q)}})}loadTile(q){return c._(this,void 0,void 0,function*(){const W=q.uid,K=!!(q&&q.request&&q.request.collectResourceTiming)&&new c.bs(q.request),ne=new b(q);this.loading[W]=ne;const Ce=new AbortController;ne.abort=Ce;try{const Q=yield this.loadVectorTile(q,Ce);if(delete this.loading[W],!Q)return null;const Te=Q.rawData,_e={};Q.expires&&(_e.expires=Q.expires),Q.cacheControl&&(_e.cacheControl=Q.cacheControl);const ke={};if(K){const He=K.finish();He&&(ke.resourceTiming=JSON.parse(JSON.stringify(He)))}ne.vectorTile=Q.vectorTile;const Ve=ne.parse(Q.vectorTile,this.layerIndex,this.availableImages,this.actor);this.loaded[W]=ne,this.fetching[W]={rawTileData:Te,cacheControl:_e,resourceTiming:ke};try{const He=yield Ve;return c.e({rawTileData:Te.slice(0)},He,_e,ke)}finally{delete this.fetching[W]}}catch(Q){throw delete this.loading[W],ne.status="done",this.loaded[W]=ne,Q}})}reloadTile(q){return c._(this,void 0,void 0,function*(){const W=q.uid;if(!this.loaded||!this.loaded[W])throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");const K=this.loaded[W];if(K.showCollisionBoxes=q.showCollisionBoxes,K.status==="parsing"){const ne=yield K.parse(K.vectorTile,this.layerIndex,this.availableImages,this.actor);let Ce;if(this.fetching[W]){const{rawTileData:Q,cacheControl:Te,resourceTiming:_e}=this.fetching[W];delete this.fetching[W],Ce=c.e({rawTileData:Q.slice(0)},ne,Te,_e)}else Ce=ne;return Ce}if(K.status==="done"&&K.vectorTile)return K.parse(K.vectorTile,this.layerIndex,this.availableImages,this.actor)})}abortTile(q){return c._(this,void 0,void 0,function*(){const W=this.loading,K=q.uid;W&&W[K]&&W[K].abort&&(W[K].abort.abort(),delete W[K])})}removeTile(q){return c._(this,void 0,void 0,function*(){this.loaded&&this.loaded[q.uid]&&delete this.loaded[q.uid]})}}class T{constructor(){this.loaded={}}loadTile(q){return c._(this,void 0,void 0,function*(){const{uid:W,encoding:K,rawImageData:ne,redFactor:Ce,greenFactor:Q,blueFactor:Te,baseShift:_e}=q,ke=ne.width+2,Ve=ne.height+2,He=c.b(ne)?new c.R({width:ke,height:Ve},yield c.bt(ne,-1,-1,ke,Ve)):ne,Ye=new c.bu(W,He,K,Ce,Q,Te,_e);return this.loaded=this.loaded||{},this.loaded[W]=Ye,Ye})}removeTile(q){const W=this.loaded,K=q.uid;W&&W[K]&&delete W[K]}}function A(ue,q){if(ue.length!==0){D(ue[0],q);for(var W=1;W=Math.abs(Te)?W-_e+Te:Te-_e+W,W=_e}W+K>=0!=!!q&&ue.reverse()}var O=c.bv(function ue(q,W){var K,ne=q&&q.type;if(ne==="FeatureCollection")for(K=0;K>31}function lt(ue,q){for(var W=ue.loadGeometry(),K=ue.type,ne=0,Ce=0,Q=W.length,Te=0;Teue},Gt=Math.fround||(Tt=new Float32Array(1),ue=>(Tt[0]=+ue,Tt[0]));var Tt;const zt=3,Ft=5,Ht=6;class Dn{constructor(q){this.options=Object.assign(Object.create(Rt),q),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(q){const{log:W,minZoom:K,maxZoom:ne}=this.options;W&&console.time("total time");const Ce=`prepare ${q.length} points`;W&&console.time(Ce),this.points=q;const Q=[];for(let _e=0;_e=K;_e--){const ke=+Date.now();Te=this.trees[_e]=this._createTree(this._cluster(Te,_e)),W&&console.log("z%d: %d clusters in %dms",_e,Te.numItems,+Date.now()-ke)}return W&&console.timeEnd("total time"),this}getClusters(q,W){let K=((q[0]+180)%360+360)%360-180;const ne=Math.max(-90,Math.min(90,q[1]));let Ce=q[2]===180?180:((q[2]+180)%360+360)%360-180;const Q=Math.max(-90,Math.min(90,q[3]));if(q[2]-q[0]>=360)K=-180,Ce=180;else if(K>Ce){const He=this.getClusters([K,ne,180,Q],W),Ye=this.getClusters([-180,ne,Ce,Q],W);return He.concat(Ye)}const Te=this.trees[this._limitZoom(W)],_e=Te.range(or(K),sr(Q),or(Ce),sr(ne)),ke=Te.data,Ve=[];for(const He of _e){const Ye=this.stride*He;Ve.push(ke[Ye+Ft]>1?Sn(ke,Ye,this.clusterProps):this.points[ke[Ye+zt]])}return Ve}getChildren(q){const W=this._getOriginId(q),K=this._getOriginZoom(q),ne="No cluster with the specified id.",Ce=this.trees[K];if(!Ce)throw new Error(ne);const Q=Ce.data;if(W*this.stride>=Q.length)throw new Error(ne);const Te=this.options.radius/(this.options.extent*Math.pow(2,K-1)),_e=Ce.within(Q[W*this.stride],Q[W*this.stride+1],Te),ke=[];for(const Ve of _e){const He=Ve*this.stride;Q[He+4]===q&&ke.push(Q[He+Ft]>1?Sn(Q,He,this.clusterProps):this.points[Q[He+zt]])}if(ke.length===0)throw new Error(ne);return ke}getLeaves(q,W,K){const ne=[];return this._appendLeaves(ne,q,W=W||10,K=K||0,0),ne}getTile(q,W,K){const ne=this.trees[this._limitZoom(q)],Ce=Math.pow(2,q),{extent:Q,radius:Te}=this.options,_e=Te/Q,ke=(K-_e)/Ce,Ve=(K+1+_e)/Ce,He={features:[]};return this._addTileFeatures(ne.range((W-_e)/Ce,ke,(W+1+_e)/Ce,Ve),ne.data,W,K,Ce,He),W===0&&this._addTileFeatures(ne.range(1-_e/Ce,ke,1,Ve),ne.data,Ce,K,Ce,He),W===Ce-1&&this._addTileFeatures(ne.range(0,ke,_e/Ce,Ve),ne.data,-1,K,Ce,He),He.features.length?He:null}getClusterExpansionZoom(q){let W=this._getOriginZoom(q)-1;for(;W<=this.options.maxZoom;){const K=this.getChildren(q);if(W++,K.length!==1)break;q=K[0].properties.cluster_id}return W}_appendLeaves(q,W,K,ne,Ce){const Q=this.getChildren(W);for(const Te of Q){const _e=Te.properties;if(_e&&_e.cluster?Ce+_e.point_count<=ne?Ce+=_e.point_count:Ce=this._appendLeaves(q,_e.cluster_id,K,ne,Ce):Ce1;let Ve,He,Ye;if(ke)Ve=mn(W,_e,this.clusterProps),He=W[_e],Ye=W[_e+1];else{const en=this.points[W[_e+zt]];Ve=en.properties;const[rn,Cn]=en.geometry.coordinates;He=or(rn),Ye=sr(Cn)}const At={type:1,geometry:[[Math.round(this.options.extent*(He*Ce-K)),Math.round(this.options.extent*(Ye*Ce-ne))]],tags:Ve};let Nt;Nt=ke||this.options.generateId?W[_e+zt]:this.points[W[_e+zt]].id,Nt!==void 0&&(At.id=Nt),Q.features.push(At)}}_limitZoom(q){return Math.max(this.options.minZoom,Math.min(Math.floor(+q),this.options.maxZoom+1))}_cluster(q,W){const{radius:K,extent:ne,reduce:Ce,minPoints:Q}=this.options,Te=K/(ne*Math.pow(2,W)),_e=q.data,ke=[],Ve=this.stride;for(let He=0;He<_e.length;He+=Ve){if(_e[He+2]<=W)continue;_e[He+2]=W;const Ye=_e[He],At=_e[He+1],Nt=q.within(_e[He],_e[He+1],Te),en=_e[He+Ft];let rn=en;for(const Cn of Nt){const Kn=Cn*Ve;_e[Kn+2]>W&&(rn+=_e[Kn+Ft])}if(rn>en&&rn>=Q){let Cn,Kn=Ye*en,_r=At*en,ri=-1;const pn=((He/Ve|0)<<5)+(W+1)+this.points.length;for(const Dr of Nt){const di=Dr*Ve;if(_e[di+2]<=W)continue;_e[di+2]=W;const ao=_e[di+Ft];Kn+=_e[di]*ao,_r+=_e[di+1]*ao,_e[di+4]=pn,Ce&&(Cn||(Cn=this._map(_e,He,!0),ri=this.clusterProps.length,this.clusterProps.push(Cn)),Ce(Cn,this._map(_e,di)))}_e[He+4]=pn,ke.push(Kn/rn,_r/rn,1/0,pn,-1,rn),Ce&&ke.push(ri)}else{for(let Cn=0;Cn1)for(const Cn of Nt){const Kn=Cn*Ve;if(!(_e[Kn+2]<=W)){_e[Kn+2]=W;for(let _r=0;_r>5}_getOriginZoom(q){return(q-this.points.length)%32}_map(q,W,K){if(q[W+Ft]>1){const Q=this.clusterProps[q[W+Ht]];return K?Object.assign({},Q):Q}const ne=this.points[q[W+zt]].properties,Ce=this.options.map(ne);return K&&Ce===ne?Object.assign({},Ce):Ce}}function Sn(ue,q,W){return{type:"Feature",id:ue[q+zt],properties:mn(ue,q,W),geometry:{type:"Point",coordinates:[(K=ue[q],360*(K-.5)),Yn(ue[q+1])]}};var K}function mn(ue,q,W){const K=ue[q+Ft],ne=K>=1e4?`${Math.round(K/1e3)}k`:K>=1e3?Math.round(K/100)/10+"k":K,Ce=ue[q+Ht],Q=Ce===-1?{}:Object.assign({},W[Ce]);return Object.assign(Q,{cluster:!0,cluster_id:ue[q+zt],point_count:K,point_count_abbreviated:ne})}function or(ue){return ue/360+.5}function sr(ue){const q=Math.sin(ue*Math.PI/180),W=.5-.25*Math.log((1+q)/(1-q))/Math.PI;return W<0?0:W>1?1:W}function Yn(ue){const q=(180-360*ue)*Math.PI/180;return 360*Math.atan(Math.exp(q))/Math.PI-90}function rt(ue,q,W,K){for(var ne,Ce=K,Q=W-q>>1,Te=W-q,_e=ue[q],ke=ue[q+1],Ve=ue[W],He=ue[W+1],Ye=q+3;YeCe)ne=Ye,Ce=At;else if(At===Ce){var Nt=Math.abs(Ye-Q);NtK&&(ne-q>3&&rt(ue,q,ne,K),ue[ne+2]=Ce,W-ne>3&&rt(ue,ne,W,K))}function Jt(ue,q,W,K,ne,Ce){var Q=ne-W,Te=Ce-K;if(Q!==0||Te!==0){var _e=((ue-W)*Q+(q-K)*Te)/(Q*Q+Te*Te);_e>1?(W=ne,K=Ce):_e>0&&(W+=Q*_e,K+=Te*_e)}return(Q=ue-W)*Q+(Te=q-K)*Te}function Xt(ue,q,W,K){var ne={id:ue===void 0?null:ue,type:q,geometry:W,tags:K,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(Ce){var Q=Ce.geometry,Te=Ce.type;if(Te==="Point"||Te==="MultiPoint"||Te==="LineString")Ze(Ce,Q);else if(Te==="Polygon"||Te==="MultiLineString")for(var _e=0;_e0&&(Q+=K?(ne*ke-_e*Ce)/2:Math.sqrt(Math.pow(_e-ne,2)+Math.pow(ke-Ce,2))),ne=_e,Ce=ke}var Ve=q.length-3;q[2]=1,rt(q,0,Ve,W),q[Ve+2]=1,q.size=Math.abs(Q),q.start=0,q.end=q.size}function Be(ue,q,W,K){for(var ne=0;ne1?1:W}function gn(ue,q,W,K,ne,Ce,Q,Te){if(K/=q,Ce>=(W/=q)&&Q=K)return null;for(var _e=[],ke=0;ke=W&&Nt=K)){var en=[];if(Ye==="Point"||Ye==="MultiPoint")ar(He,en,W,K,ne);else if(Ye==="LineString")Fo(He,en,W,K,ne,!1,Te.lineMetrics);else if(Ye==="MultiLineString")Ys(He,en,W,K,ne,!1);else if(Ye==="Polygon")Ys(He,en,W,K,ne,!0);else if(Ye==="MultiPolygon")for(var rn=0;rn=W&&Q<=K&&(q.push(ue[Ce]),q.push(ue[Ce+1]),q.push(ue[Ce+2]))}}function Fo(ue,q,W,K,ne,Ce,Q){for(var Te,_e,ke=Is(ue),Ve=ne===0?Oi:Rl,He=ue.start,Ye=0;YeW&&(_e=Ve(ke,At,Nt,rn,Cn,W),Q&&(ke.start=He+Te*_e)):Kn>K?_r=W&&(_e=Ve(ke,At,Nt,rn,Cn,W),ri=!0),_r>K&&Kn<=K&&(_e=Ve(ke,At,Nt,rn,Cn,K),ri=!0),!Ce&&ri&&(Q&&(ke.end=He+Te*_e),q.push(ke),ke=Is(ue)),Q&&(He+=Te)}var pn=ue.length-3;At=ue[pn],Nt=ue[pn+1],en=ue[pn+2],(Kn=ne===0?At:Nt)>=W&&Kn<=K&&tl(ke,At,Nt,en),pn=ke.length-3,Ce&&pn>=3&&(ke[pn]!==ke[0]||ke[pn+1]!==ke[1])&&tl(ke,ke[0],ke[1],ke[2]),ke.length&&q.push(ke)}function Is(ue){var q=[];return q.size=ue.size,q.start=ue.start,q.end=ue.end,q}function Ys(ue,q,W,K,ne,Ce){for(var Q=0;QQ.maxX&&(Q.maxX=Ve),He>Q.maxY&&(Q.maxY=He)}return Q}function ni(ue,q,W,K){var ne=q.geometry,Ce=q.type,Q=[];if(Ce==="Point"||Ce==="MultiPoint")for(var Te=0;Te0&&q.size<(ne?Q:K))W.numPoints+=q.length/3;else{for(var Te=[],_e=0;_eQ)&&(W.numSimplified++,Te.push(q[_e]),Te.push(q[_e+1])),W.numPoints++;ne&&function(ke,Ve){for(var He=0,Ye=0,At=ke.length,Nt=At-2;Ye0===Ve)for(Ye=0,At=ke.length;Ye24)throw new Error("maxZoom should be in the 0-24 range");if(q.promoteId&&q.generateId)throw new Error("promoteId and generateId cannot be used together.");var K=function(ne,Ce){var Q=[];if(ne.type==="FeatureCollection")for(var Te=0;Te1&&console.time("creation"),Ye=this.tiles[He]=Nl(ue,q,W,K,_e),this.tileCoords.push({z:q,x:W,y:K}),ke)){ke>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",q,W,K,Ye.numFeatures,Ye.numPoints,Ye.numSimplified),console.timeEnd("creation"));var At="z"+q;this.stats[At]=(this.stats[At]||0)+1,this.total++}if(Ye.source=ue,ne){if(q===_e.maxZoom||q===ne)continue;var Nt=1<1&&console.time("clipping");var en,rn,Cn,Kn,_r,ri,pn=.5*_e.buffer/_e.extent,Dr=.5-pn,di=.5+pn,ao=1+pn;en=rn=Cn=Kn=null,_r=gn(ue,Ve,W-pn,W+di,0,Ye.minX,Ye.maxX,_e),ri=gn(ue,Ve,W+Dr,W+ao,0,Ye.minX,Ye.maxX,_e),ue=null,_r&&(en=gn(_r,Ve,K-pn,K+di,1,Ye.minY,Ye.maxY,_e),rn=gn(_r,Ve,K+Dr,K+ao,1,Ye.minY,Ye.maxY,_e),_r=null),ri&&(Cn=gn(ri,Ve,K-pn,K+di,1,Ye.minY,Ye.maxY,_e),Kn=gn(ri,Ve,K+Dr,K+ao,1,Ye.minY,Ye.maxY,_e),ri=null),ke>1&&console.timeEnd("clipping"),Te.push(en||[],q+1,2*W,2*K),Te.push(rn||[],q+1,2*W,2*K+1),Te.push(Cn||[],q+1,2*W+1,2*K),Te.push(Kn||[],q+1,2*W+1,2*K+1)}}},un.prototype.getTile=function(ue,q,W){var K=this.options,ne=K.extent,Ce=K.debug;if(ue<0||ue>24)return null;var Q=1<1&&console.log("drilling down to z%d-%d-%d",ue,q,W);for(var _e,ke=ue,Ve=q,He=W;!_e&&ke>0;)ke--,Ve=Math.floor(Ve/2),He=Math.floor(He/2),_e=this.tiles[an(ke,Ve,He)];return _e&&_e.source?(Ce>1&&console.log("found parent tile z%d-%d-%d",ke,Ve,He),Ce>1&&console.time("drilling down"),this.splitTile(_e.source,ke,Ve,He,ue,q,W),Ce>1&&console.timeEnd("drilling down"),this.tiles[Te]?as(this.tiles[Te],ne):null):null};class Ma extends E{constructor(){super(...arguments),this._dataUpdateable=new Map}loadVectorTile(q,W){return c._(this,void 0,void 0,function*(){const K=q.tileID.canonical;if(!this._geoJSONIndex)throw new Error("Unable to parse the data into a cluster or geojson");const ne=this._geoJSONIndex.getTile(K.z,K.x,K.y);if(!ne)return null;const Ce=new class{constructor(Te){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=c.W,this.length=Te.length,this._features=Te}feature(Te){return new class{constructor(_e){this._feature=_e,this.extent=c.W,this.type=_e.type,this.properties=_e.tags,"id"in _e&&!isNaN(_e.id)&&(this.id=parseInt(_e.id,10))}loadGeometry(){if(this._feature.type===1){const _e=[];for(const ke of this._feature.geometry)_e.push([new c.P(ke[0],ke[1])]);return _e}{const _e=[];for(const ke of this._feature.geometry){const Ve=[];for(const He of ke)Ve.push(new c.P(He[0],He[1]));_e.push(Ve)}return _e}}toGeoJSON(_e,ke,Ve){return z.call(this,_e,ke,Ve)}}(this._features[Te])}}(ne.features);let Q=it(Ce);return Q.byteOffset===0&&Q.byteLength===Q.buffer.byteLength||(Q=new Uint8Array(Q)),{vectorTile:Ce,rawData:Q.buffer}})}loadData(q){return c._(this,void 0,void 0,function*(){var W;(W=this._pendingRequest)===null||W===void 0||W.abort();const K=!!(q&&q.request&&q.request.collectResourceTiming)&&new c.bs(q.request);this._pendingRequest=new AbortController;try{let ne=yield this.loadGeoJSON(q,this._pendingRequest);if(delete this._pendingRequest,typeof ne!="object")throw new Error(`Input data given to '${q.source}' is not a valid GeoJSON object.`);if(O(ne,!0),q.filter){const Q=c.by(q.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(Q.result==="error")throw new Error(Q.value.map(_e=>`${_e.key}: ${_e.message}`).join(", "));ne={type:"FeatureCollection",features:ne.features.filter(_e=>Q.value.evaluate({zoom:0},_e))}}this._geoJSONIndex=q.cluster?new Dn(function({superclusterOptions:Q,clusterProperties:Te}){if(!Te||!Q)return Q;const _e={},ke={},Ve={accumulated:null,zoom:0},He={properties:null},Ye=Object.keys(Te);for(const At of Ye){const[Nt,en]=Te[At],rn=c.by(en),Cn=c.by(typeof Nt=="string"?[Nt,["accumulated"],["get",At]]:Nt);_e[At]=rn.value,ke[At]=Cn.value}return Q.map=At=>{He.properties=At;const Nt={};for(const en of Ye)Nt[en]=_e[en].evaluate(Ve,He);return Nt},Q.reduce=(At,Nt)=>{He.properties=Nt;for(const en of Ye)Ve.accumulated=At[en],At[en]=ke[en].evaluate(Ve,He)},Q}(q)).load(ne.features):function(Q,Te){return new un(Q,Te)}(ne,q.geojsonVtOptions),this.loaded={};const Ce={};if(K){const Q=K.finish();Q&&(Ce.resourceTiming={},Ce.resourceTiming[q.source]=JSON.parse(JSON.stringify(Q)))}return Ce}catch(ne){if(delete this._pendingRequest,c.bz(ne))return{abandoned:!0};throw ne}})}reloadTile(q){const W=this.loaded;return W&&W[q.uid]?super.reloadTile(q):this.loadTile(q)}loadGeoJSON(q,W){return c._(this,void 0,void 0,function*(){const{promoteId:K}=q;if(q.request){const ne=yield c.h(q.request,W);return this._dataUpdateable=ls(ne.data,K)?sn(ne.data,K):void 0,ne.data}if(typeof q.data=="string")try{const ne=JSON.parse(q.data);return this._dataUpdateable=ls(ne,K)?sn(ne,K):void 0,ne}catch{throw new Error(`Input data given to '${q.source}' is not a valid GeoJSON object.`)}if(!q.dataDiff)throw new Error(`Input data given to '${q.source}' is not a valid GeoJSON object.`);if(!this._dataUpdateable)throw new Error(`Cannot update existing geojson data in ${q.source}`);return function(ne,Ce,Q){var Te,_e,ke,Ve;if(Ce.removeAll&&ne.clear(),Ce.remove)for(const He of Ce.remove)ne.delete(He);if(Ce.add)for(const He of Ce.add){const Ye=Ur(He,Q);Ye!=null&&ne.set(Ye,He)}if(Ce.update)for(const He of Ce.update){let Ye=ne.get(He.id);if(Ye==null)continue;const At=!He.removeAllProperties&&(((Te=He.removeProperties)===null||Te===void 0?void 0:Te.length)>0||((_e=He.addOrUpdateProperties)===null||_e===void 0?void 0:_e.length)>0);if((He.newGeometry||He.removeAllProperties||At)&&(Ye=Object.assign({},Ye),ne.set(He.id,Ye),At&&(Ye.properties=Object.assign({},Ye.properties))),He.newGeometry&&(Ye.geometry=He.newGeometry),He.removeAllProperties)Ye.properties={};else if(((ke=He.removeProperties)===null||ke===void 0?void 0:ke.length)>0)for(const Nt of He.removeProperties)Object.prototype.hasOwnProperty.call(Ye.properties,Nt)&&delete Ye.properties[Nt];if(((Ve=He.addOrUpdateProperties)===null||Ve===void 0?void 0:Ve.length)>0)for(const{key:Nt,value:en}of He.addOrUpdateProperties)Ye.properties[Nt]=en}}(this._dataUpdateable,q.dataDiff,K),{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())}})}removeSource(q){return c._(this,void 0,void 0,function*(){this._pendingRequest&&this._pendingRequest.abort()})}getClusterExpansionZoom(q){return this._geoJSONIndex.getClusterExpansionZoom(q.clusterId)}getClusterChildren(q){return this._geoJSONIndex.getChildren(q.clusterId)}getClusterLeaves(q){return this._geoJSONIndex.getLeaves(q.clusterId,q.limit,q.offset)}}class Wr{constructor(q){this.self=q,this.actor=new c.C(q),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.self.registerWorkerSource=(W,K)=>{if(this.externalWorkerSourceTypes[W])throw new Error(`Worker source with name "${W}" already registered.`);this.externalWorkerSourceTypes[W]=K},this.self.addProtocol=c.bf,this.self.removeProtocol=c.bg,this.self.registerRTLTextPlugin=W=>{if(c.bA.isParsed())throw new Error("RTL text plugin already registered.");c.bA.setMethods(W)},this.actor.registerMessageHandler("LDT",(W,K)=>this._getDEMWorkerSource(W,K.source).loadTile(K)),this.actor.registerMessageHandler("RDT",(W,K)=>c._(this,void 0,void 0,function*(){this._getDEMWorkerSource(W,K.source).removeTile(K)})),this.actor.registerMessageHandler("GCEZ",(W,K)=>c._(this,void 0,void 0,function*(){return this._getWorkerSource(W,K.type,K.source).getClusterExpansionZoom(K)})),this.actor.registerMessageHandler("GCC",(W,K)=>c._(this,void 0,void 0,function*(){return this._getWorkerSource(W,K.type,K.source).getClusterChildren(K)})),this.actor.registerMessageHandler("GCL",(W,K)=>c._(this,void 0,void 0,function*(){return this._getWorkerSource(W,K.type,K.source).getClusterLeaves(K)})),this.actor.registerMessageHandler("LD",(W,K)=>this._getWorkerSource(W,K.type,K.source).loadData(K)),this.actor.registerMessageHandler("LT",(W,K)=>this._getWorkerSource(W,K.type,K.source).loadTile(K)),this.actor.registerMessageHandler("RT",(W,K)=>this._getWorkerSource(W,K.type,K.source).reloadTile(K)),this.actor.registerMessageHandler("AT",(W,K)=>this._getWorkerSource(W,K.type,K.source).abortTile(K)),this.actor.registerMessageHandler("RMT",(W,K)=>this._getWorkerSource(W,K.type,K.source).removeTile(K)),this.actor.registerMessageHandler("RS",(W,K)=>c._(this,void 0,void 0,function*(){if(!this.workerSources[W]||!this.workerSources[W][K.type]||!this.workerSources[W][K.type][K.source])return;const ne=this.workerSources[W][K.type][K.source];delete this.workerSources[W][K.type][K.source],ne.removeSource!==void 0&&ne.removeSource(K)})),this.actor.registerMessageHandler("RM",W=>c._(this,void 0,void 0,function*(){delete this.layerIndexes[W],delete this.availableImages[W],delete this.workerSources[W],delete this.demWorkerSources[W]})),this.actor.registerMessageHandler("SR",(W,K)=>c._(this,void 0,void 0,function*(){this.referrer=K})),this.actor.registerMessageHandler("SRPS",(W,K)=>this._syncRTLPluginState(W,K)),this.actor.registerMessageHandler("IS",(W,K)=>c._(this,void 0,void 0,function*(){this.self.importScripts(K)})),this.actor.registerMessageHandler("SI",(W,K)=>this._setImages(W,K)),this.actor.registerMessageHandler("UL",(W,K)=>c._(this,void 0,void 0,function*(){this._getLayerIndex(W).update(K.layers,K.removedIds)})),this.actor.registerMessageHandler("SL",(W,K)=>c._(this,void 0,void 0,function*(){this._getLayerIndex(W).replace(K)}))}_setImages(q,W){return c._(this,void 0,void 0,function*(){this.availableImages[q]=W;for(const K in this.workerSources[q]){const ne=this.workerSources[q][K];for(const Ce in ne)ne[Ce].availableImages=W}})}_syncRTLPluginState(q,W){return c._(this,void 0,void 0,function*(){if(c.bA.isParsed())return c.bA.getState();if(W.pluginStatus!=="loading")return c.bA.setState(W),W;const K=W.pluginURL;if(this.self.importScripts(K),c.bA.isParsed()){const ne={pluginStatus:"loaded",pluginURL:K};return c.bA.setState(ne),ne}throw c.bA.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${K}`)})}_getAvailableImages(q){let W=this.availableImages[q];return W||(W=[]),W}_getLayerIndex(q){let W=this.layerIndexes[q];return W||(W=this.layerIndexes[q]=new l),W}_getWorkerSource(q,W,K){if(this.workerSources[q]||(this.workerSources[q]={}),this.workerSources[q][W]||(this.workerSources[q][W]={}),!this.workerSources[q][W][K]){const ne={sendAsync:(Ce,Q)=>(Ce.targetMapId=q,this.actor.sendAsync(Ce,Q))};switch(W){case"vector":this.workerSources[q][W][K]=new E(ne,this._getLayerIndex(q),this._getAvailableImages(q));break;case"geojson":this.workerSources[q][W][K]=new Ma(ne,this._getLayerIndex(q),this._getAvailableImages(q));break;default:this.workerSources[q][W][K]=new this.externalWorkerSourceTypes[W](ne,this._getLayerIndex(q),this._getAvailableImages(q))}}return this.workerSources[q][W][K]}_getDEMWorkerSource(q,W){return this.demWorkerSources[q]||(this.demWorkerSources[q]={}),this.demWorkerSources[q][W]||(this.demWorkerSources[q][W]=new T),this.demWorkerSources[q][W]}}return c.i(self)&&(self.worker=new Wr(self)),Wr}),i("index",["exports","./shared"],function(c,l){var m="4.1.3";let b,S;const E={now:typeof performance<"u"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frameAsync:y=>new Promise((s,f)=>{const d=requestAnimationFrame(s);y.signal.addEventListener("abort",()=>{cancelAnimationFrame(d),f(l.c())})}),getImageData(y,s=0){return this.getImageCanvasContext(y).getImageData(-s,-s,y.width+2*s,y.height+2*s)},getImageCanvasContext(y){const s=window.document.createElement("canvas"),f=s.getContext("2d",{willReadFrequently:!0});if(!f)throw new Error("failed to create canvas 2d context");return s.width=y.width,s.height=y.height,f.drawImage(y,0,0,y.width,y.height),f},resolveURL:y=>(b||(b=document.createElement("a")),b.href=y,b.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(S==null&&(S=matchMedia("(prefers-reduced-motion: reduce)")),S.matches)}};class T{static testProp(s){if(!T.docStyle)return s[0];for(let f=0;f{window.removeEventListener("click",T.suppressClickInternal,!0)},0)}static getScale(s){const f=s.getBoundingClientRect();return{x:f.width/s.offsetWidth||1,y:f.height/s.offsetHeight||1,boundingClientRect:f}}static getPoint(s,f,d){const g=f.boundingClientRect;return new l.P((d.clientX-g.left)/f.x-s.clientLeft,(d.clientY-g.top)/f.y-s.clientTop)}static mousePos(s,f){const d=T.getScale(s);return T.getPoint(s,d,f)}static touchPos(s,f){const d=[],g=T.getScale(s);for(let v=0;v{s=[],f=0,d=0,g={}},y.addThrottleControl=M=>{const R=d++;return g[R]=M,R},y.removeThrottleControl=M=>{delete g[M],C()},y.getImage=(M,R,V=!0)=>new Promise((U,X)=>{A.supported&&(M.headers||(M.headers={}),M.headers.accept="image/webp,*/*"),l.e(M,{type:"image"}),s.push({abortController:R,requestParameters:M,supportImageRefresh:V,state:"queued",onError:oe=>{X(oe)},onSuccess:oe=>{U(oe)}}),C()});const v=M=>l._(this,void 0,void 0,function*(){M.state="running";const{requestParameters:R,supportImageRefresh:V,onError:U,onSuccess:X,abortController:oe}=M,ie=V===!1&&!l.i(self)&&!l.g(R.url)&&(!R.headers||Object.keys(R.headers).reduce((Se,ze)=>Se&&ze==="accept",!0));f++;const ce=ie?L(R,oe):l.m(R,oe);try{const Se=yield ce;delete M.abortController,M.state="completed",Se.data instanceof HTMLImageElement||l.b(Se.data)?X(Se):Se.data&&X({data:yield(ee=Se.data,typeof createImageBitmap=="function"?l.d(ee):l.f(ee)),cacheControl:Se.cacheControl,expires:Se.expires})}catch(Se){delete M.abortController,U(Se)}finally{f--,C()}var ee}),C=()=>{const M=(()=>{for(const R of Object.keys(g))if(g[R]())return!0;return!1})()?l.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:l.a.MAX_PARALLEL_IMAGE_REQUESTS;for(let R=f;R0;R++){const V=s.shift();V.abortController.signal.aborted?R--:v(V)}},L=(M,R)=>new Promise((V,U)=>{const X=new Image,oe=M.url,ie=M.credentials;ie&&ie==="include"?X.crossOrigin="use-credentials":(ie&&ie==="same-origin"||!l.s(oe))&&(X.crossOrigin="anonymous"),R.signal.addEventListener("abort",()=>{X.src="",U(l.c())}),X.fetchPriority="high",X.onload=()=>{X.onerror=X.onload=null,V({data:X})},X.onerror=()=>{X.onerror=X.onload=null,R.signal.aborted||U(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))},X.src=oe})}(j||(j={})),j.resetRequestQueue();class Z{constructor(s){this._transformRequestFn=s}transformRequest(s,f){return this._transformRequestFn&&this._transformRequestFn(s,f)||{url:s}}normalizeSpriteURL(s,f,d){const g=function(v){const C=v.match(J);if(!C)throw new Error(`Unable to parse URL "${v}"`);return{protocol:C[1],authority:C[2],path:C[3]||"/",params:C[4]?C[4].split("&"):[]}}(s);return g.path+=`${f}${d}`,function(v){const C=v.params.length?`?${v.params.join("&")}`:"";return`${v.protocol}://${v.authority}${v.path}${C}`}(g)}setTransformRequest(s){this._transformRequestFn=s}}const J=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function he(y){var s=new l.A(3);return s[0]=y[0],s[1]=y[1],s[2]=y[2],s}var re,ye=function(y,s,f){return y[0]=s[0]-f[0],y[1]=s[1]-f[1],y[2]=s[2]-f[2],y};re=new l.A(3),l.A!=Float32Array&&(re[0]=0,re[1]=0,re[2]=0);var ae=function(y){var s=y[0],f=y[1];return s*s+f*f};function Ae(y){const s=[];if(typeof y=="string")s.push({id:"default",url:y});else if(y&&y.length>0){const f=[];for(const{id:d,url:g}of y){const v=`${d}${g}`;f.indexOf(v)===-1&&(f.push(v),s.push({id:d,url:g}))}}return s}(function(){var y=new l.A(2);l.A!=Float32Array&&(y[0]=0,y[1]=0)})();class me{constructor(s,f,d,g){this.context=s,this.format=d,this.texture=s.gl.createTexture(),this.update(f,g)}update(s,f,d){const{width:g,height:v}=s,C=!(this.size&&this.size[0]===g&&this.size[1]===v||d),{context:L}=this,{gl:M}=L;if(this.useMipmap=!!(f&&f.useMipmap),M.bindTexture(M.TEXTURE_2D,this.texture),L.pixelStoreUnpackFlipY.set(!1),L.pixelStoreUnpack.set(1),L.pixelStoreUnpackPremultiplyAlpha.set(this.format===M.RGBA&&(!f||f.premultiply!==!1)),C)this.size=[g,v],s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement||s instanceof ImageData||l.b(s)?M.texImage2D(M.TEXTURE_2D,0,this.format,this.format,M.UNSIGNED_BYTE,s):M.texImage2D(M.TEXTURE_2D,0,this.format,g,v,0,this.format,M.UNSIGNED_BYTE,s.data);else{const{x:R,y:V}=d||{x:0,y:0};s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement||s instanceof ImageData||l.b(s)?M.texSubImage2D(M.TEXTURE_2D,0,R,V,M.RGBA,M.UNSIGNED_BYTE,s):M.texSubImage2D(M.TEXTURE_2D,0,R,V,g,v,M.RGBA,M.UNSIGNED_BYTE,s.data)}this.useMipmap&&this.isSizePowerOfTwo()&&M.generateMipmap(M.TEXTURE_2D)}bind(s,f,d){const{context:g}=this,{gl:v}=g;v.bindTexture(v.TEXTURE_2D,this.texture),d!==v.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(d=v.LINEAR),s!==this.filter&&(v.texParameteri(v.TEXTURE_2D,v.TEXTURE_MAG_FILTER,s),v.texParameteri(v.TEXTURE_2D,v.TEXTURE_MIN_FILTER,d||s),this.filter=s),f!==this.wrap&&(v.texParameteri(v.TEXTURE_2D,v.TEXTURE_WRAP_S,f),v.texParameteri(v.TEXTURE_2D,v.TEXTURE_WRAP_T,f),this.wrap=f)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){const{gl:s}=this.context;s.deleteTexture(this.texture),this.texture=null}}function Ee(y){const{userImage:s}=y;return!!(s&&s.render&&s.render())&&(y.data.replace(new Uint8Array(s.data.buffer)),!0)}class Qe extends l.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new l.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(s){if(this.loaded!==s&&(this.loaded=s,s)){for(const{ids:f,promiseResolve:d}of this.requestors)d(this._getImagesForIds(f));this.requestors=[]}}getImage(s){const f=this.images[s];if(f&&!f.data&&f.spriteData){const d=f.spriteData;f.data=new l.R({width:d.width,height:d.height},d.context.getImageData(d.x,d.y,d.width,d.height).data),f.spriteData=null}return f}addImage(s,f){if(this.images[s])throw new Error(`Image id ${s} already exist, use updateImage instead`);this._validate(s,f)&&(this.images[s]=f)}_validate(s,f){let d=!0;const g=f.data||f.spriteData;return this._validateStretch(f.stretchX,g&&g.width)||(this.fire(new l.j(new Error(`Image "${s}" has invalid "stretchX" value`))),d=!1),this._validateStretch(f.stretchY,g&&g.height)||(this.fire(new l.j(new Error(`Image "${s}" has invalid "stretchY" value`))),d=!1),this._validateContent(f.content,f)||(this.fire(new l.j(new Error(`Image "${s}" has invalid "content" value`))),d=!1),d}_validateStretch(s,f){if(!s)return!0;let d=0;for(const g of s){if(g[0]{let g=!0;if(!this.isLoaded())for(const v of s)this.images[v]||(g=!1);this.isLoaded()||g?f(this._getImagesForIds(s)):this.requestors.push({ids:s,promiseResolve:f})})}_getImagesForIds(s){const f={};for(const d of s){let g=this.getImage(d);g||(this.fire(new l.k("styleimagemissing",{id:d})),g=this.getImage(d)),g?f[d]={data:g.data.clone(),pixelRatio:g.pixelRatio,sdf:g.sdf,version:g.version,stretchX:g.stretchX,stretchY:g.stretchY,content:g.content,hasRenderCallback:!!(g.userImage&&g.userImage.render)}:l.w(`Image "${d}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`)}return f}getPixelSize(){const{width:s,height:f}=this.atlasImage;return{width:s,height:f}}getPattern(s){const f=this.patterns[s],d=this.getImage(s);if(!d)return null;if(f&&f.position.version===d.version)return f.position;if(f)f.position.version=d.version;else{const g={w:d.data.width+2,h:d.data.height+2,x:0,y:0},v=new l.I(g,d);this.patterns[s]={bin:g,position:v}}return this._updatePatternAtlas(),this.patterns[s].position}bind(s){const f=s.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new me(s,this.atlasImage,f.RGBA),this.atlasTexture.bind(f.LINEAR,f.CLAMP_TO_EDGE)}_updatePatternAtlas(){const s=[];for(const v in this.patterns)s.push(this.patterns[v].bin);const{w:f,h:d}=l.p(s),g=this.atlasImage;g.resize({width:f||1,height:d||1});for(const v in this.patterns){const{bin:C}=this.patterns[v],L=C.x+1,M=C.y+1,R=this.getImage(v).data,V=R.width,U=R.height;l.R.copy(R,g,{x:0,y:0},{x:L,y:M},{width:V,height:U}),l.R.copy(R,g,{x:0,y:U-1},{x:L,y:M-1},{width:V,height:1}),l.R.copy(R,g,{x:0,y:0},{x:L,y:M+U},{width:V,height:1}),l.R.copy(R,g,{x:V-1,y:0},{x:L-1,y:M},{width:1,height:U}),l.R.copy(R,g,{x:0,y:0},{x:L+V,y:M},{width:1,height:U})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(s){for(const f of s){if(this.callbackDispatchedThisFrame[f])continue;this.callbackDispatchedThisFrame[f]=!0;const d=this.getImage(f);d||l.w(`Image with ID: "${f}" was not found`),Ee(d)&&this.updateImage(f,d)}}}const Le=1e20;function lt(y,s,f,d,g,v,C,L,M){for(let R=s;R-1);M++,v[M]=L,C[M]=R,C[M+1]=Le}for(let L=0,M=0;L65535)throw new Error("glyphs > 65535 not supported");if(d.ranges[v])return{stack:s,id:f,glyph:g};if(!this.url)throw new Error("glyphsUrl is not set");if(!d.requests[v]){const L=it.loadGlyphRange(s,v,this.url,this.requestManager);d.requests[v]=L}const C=yield d.requests[v];for(const L in C)this._doesCharSupportLocalGlyph(+L)||(d.glyphs[+L]=C[+L]);return d.ranges[v]=!0,{stack:s,id:f,glyph:C[f]||null}})}_doesCharSupportLocalGlyph(s){return!!this.localIdeographFontFamily&&(l.u["CJK Unified Ideographs"](s)||l.u["Hangul Syllables"](s)||l.u.Hiragana(s)||l.u.Katakana(s))}_tinySDF(s,f,d){const g=this.localIdeographFontFamily;if(!g||!this._doesCharSupportLocalGlyph(d))return;let v=s.tinySDF;if(!v){let L="400";/bold/i.test(f)?L="900":/medium/i.test(f)?L="500":/light/i.test(f)&&(L="200"),v=s.tinySDF=new it.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:g,fontWeight:L})}const C=v.draw(String.fromCharCode(d));return{id:d,bitmap:new l.o({width:C.width||60,height:C.height||60},C.data),metrics:{width:C.glyphWidth/2||24,height:C.glyphHeight/2||24,left:C.glyphLeft/2+.5||0,top:C.glyphTop/2-27.5||-8,advance:C.glyphAdvance/2||24,isDoubleResolution:!0}}}}it.loadGlyphRange=function(y,s,f,d){return l._(this,void 0,void 0,function*(){const g=256*s,v=g+255,C=d.transformRequest(f.replace("{fontstack}",y).replace("{range}",`${g}-${v}`),"Glyphs"),L=yield l.l(C,new AbortController);if(!L||!L.data)throw new Error(`Could not load glyph range. range: ${s}, ${g}-${v}`);const M={};for(const R of l.n(L.data))M[R.id]=R;return M})},it.TinySDF=class{constructor({fontSize:y=24,buffer:s=3,radius:f=8,cutoff:d=.25,fontFamily:g="sans-serif",fontWeight:v="normal",fontStyle:C="normal"}={}){this.buffer=s,this.cutoff=d,this.radius=f;const L=this.size=y+4*s,M=this._createCanvas(L),R=this.ctx=M.getContext("2d",{willReadFrequently:!0});R.font=`${C} ${v} ${y}px ${g}`,R.textBaseline="alphabetic",R.textAlign="left",R.fillStyle="black",this.gridOuter=new Float64Array(L*L),this.gridInner=new Float64Array(L*L),this.f=new Float64Array(L),this.z=new Float64Array(L+1),this.v=new Uint16Array(L)}_createCanvas(y){const s=document.createElement("canvas");return s.width=s.height=y,s}draw(y){const{width:s,actualBoundingBoxAscent:f,actualBoundingBoxDescent:d,actualBoundingBoxLeft:g,actualBoundingBoxRight:v}=this.ctx.measureText(y),C=Math.ceil(f),L=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(v-g))),M=Math.min(this.size-this.buffer,C+Math.ceil(d)),R=L+2*this.buffer,V=M+2*this.buffer,U=Math.max(R*V,0),X=new Uint8ClampedArray(U),oe={data:X,width:R,height:V,glyphWidth:L,glyphHeight:M,glyphTop:C,glyphLeft:0,glyphAdvance:s};if(L===0||M===0)return oe;const{ctx:ie,buffer:ce,gridInner:ee,gridOuter:Se}=this;ie.clearRect(ce,ce,L,M),ie.fillText(y,ce,ce+C);const ze=ie.getImageData(ce,ce,L,M);Se.fill(Le,0,U),ee.fill(0,0,U);for(let fe=0;fe0?Xe*Xe:0,ee[Ue]=Xe<0?Xe*Xe:0}}lt(Se,0,0,R,V,R,this.f,this.v,this.z),lt(ee,ce,ce,L,M,R,this.f,this.v,this.z);for(let fe=0;fe1&&(M=s[++L]);const V=Math.abs(R-M.left),U=Math.abs(R-M.right),X=Math.min(V,U);let oe;const ie=v/d*(g+1);if(M.isDash){const ce=g-Math.abs(ie);oe=Math.sqrt(X*X+ce*ce)}else oe=g-Math.sqrt(X*X+ie*ie);this.data[C+R]=Math.max(0,Math.min(255,oe+128))}}}addRegularDash(s){for(let L=s.length-1;L>=0;--L){const M=s[L],R=s[L+1];M.zeroLength?s.splice(L,1):R&&R.isDash===M.isDash&&(R.left=M.left,s.splice(L,1))}const f=s[0],d=s[s.length-1];f.isDash===d.isDash&&(f.left=d.left-this.width,d.right=f.right+this.width);const g=this.width*this.nextRow;let v=0,C=s[v];for(let L=0;L1&&(C=s[++v]);const M=Math.abs(L-C.left),R=Math.abs(L-C.right),V=Math.min(M,R);this.data[g+L]=Math.max(0,Math.min(255,(C.isDash?V:-V)+128))}}addDash(s,f){const d=f?7:0,g=2*d+1;if(this.nextRow+g>this.height)return l.w("LineAtlas out of space"),null;let v=0;for(let L=0;L{f.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[Ft]}numActive(){return Object.keys(this.active).length}}const Dn=Math.floor(E.hardwareConcurrency/2);let Sn,mn;function or(){return Sn||(Sn=new Ht),Sn}Ht.workerCount=l.B(globalThis)?Math.max(Math.min(Dn,3),1):1;class sr{constructor(s,f){this.workerPool=s,this.actors=[],this.currentActor=0,this.id=f;const d=this.workerPool.acquire(f);for(let g=0;g{f.remove()}),this.actors=[],s&&this.workerPool.release(this.id)}registerMessageHandler(s,f){for(const d of this.actors)d.registerMessageHandler(s,f)}}function Yn(){return mn||(mn=new sr(or(),l.G),mn.registerMessageHandler("GR",(y,s,f)=>l.m(s,f))),mn}function rt(y,s){const f=l.F();return l.H(f,f,[1,1,0]),l.J(f,f,[.5*y.width,.5*y.height,1]),l.K(f,f,y.calculatePosMatrix(s.toUnwrapped()))}function Jt(y,s,f,d,g,v){const C=function(U,X,oe){if(U)for(const ie of U){const ce=X[ie];if(ce&&ce.source===oe&&ce.type==="fill-extrusion")return!0}else for(const ie in X){const ce=X[ie];if(ce.source===oe&&ce.type==="fill-extrusion")return!0}return!1}(g&&g.layers,s,y.id),L=v.maxPitchScaleFactor(),M=y.tilesIn(d,L,C);M.sort(Xt);const R=[];for(const U of M)R.push({wrappedTileID:U.tileID.wrapped().key,queryResults:U.tile.queryRenderedFeatures(s,f,y._state,U.queryGeometry,U.cameraQueryGeometry,U.scale,g,v,L,rt(y.transform,U.tileID))});const V=function(U){const X={},oe={};for(const ie of U){const ce=ie.queryResults,ee=ie.wrappedTileID,Se=oe[ee]=oe[ee]||{};for(const ze in ce){const fe=ce[ze],Me=Se[ze]=Se[ze]||{},Fe=X[ze]=X[ze]||[];for(const Ue of fe)Me[Ue.featureIndex]||(Me[Ue.featureIndex]=!0,Fe.push(Ue))}}return X}(R);for(const U in V)V[U].forEach(X=>{const oe=X.feature,ie=y.getFeatureState(oe.layer["source-layer"],oe.id);oe.source=oe.layer.source,oe.layer["source-layer"]&&(oe.sourceLayer=oe.layer["source-layer"]),oe.state=ie});return V}function Xt(y,s){const f=y.tileID,d=s.tileID;return f.overscaledZ-d.overscaledZ||f.canonical.y-d.canonical.y||f.wrap-d.wrap||f.canonical.x-d.canonical.x}function Ze(y,s,f){return l._(this,void 0,void 0,function*(){let d=y;if(y.url?d=(yield l.h(s.transformRequest(y.url,"Source"),f)).data:yield E.frameAsync(f),!d)return null;const g=l.L(l.e(d,y),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in d&&d.vector_layers&&(g.vectorLayerIds=d.vector_layers.map(v=>v.id)),g})}class Ne{constructor(s,f){s&&(f?this.setSouthWest(s).setNorthEast(f):Array.isArray(s)&&(s.length===4?this.setSouthWest([s[0],s[1]]).setNorthEast([s[2],s[3]]):this.setSouthWest(s[0]).setNorthEast(s[1])))}setNorthEast(s){return this._ne=s instanceof l.M?new l.M(s.lng,s.lat):l.M.convert(s),this}setSouthWest(s){return this._sw=s instanceof l.M?new l.M(s.lng,s.lat):l.M.convert(s),this}extend(s){const f=this._sw,d=this._ne;let g,v;if(s instanceof l.M)g=s,v=s;else{if(!(s instanceof Ne))return Array.isArray(s)?s.length===4||s.every(Array.isArray)?this.extend(Ne.convert(s)):this.extend(l.M.convert(s)):s&&("lng"in s||"lon"in s)&&"lat"in s?this.extend(l.M.convert(s)):this;if(g=s._sw,v=s._ne,!g||!v)return this}return f||d?(f.lng=Math.min(g.lng,f.lng),f.lat=Math.min(g.lat,f.lat),d.lng=Math.max(v.lng,d.lng),d.lat=Math.max(v.lat,d.lat)):(this._sw=new l.M(g.lng,g.lat),this._ne=new l.M(v.lng,v.lat)),this}getCenter(){return new l.M((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 l.M(this.getWest(),this.getNorth())}getSouthEast(){return new l.M(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(s){const{lng:f,lat:d}=l.M.convert(s);let g=this._sw.lng<=f&&f<=this._ne.lng;return this._sw.lng>this._ne.lng&&(g=this._sw.lng>=f&&f>=this._ne.lng),this._sw.lat<=d&&d<=this._ne.lat&&g}static convert(s){return s instanceof Ne?s:s&&new Ne(s)}static fromLngLat(s,f=0){const d=360*f/40075017,g=d/Math.cos(Math.PI/180*s.lat);return new Ne(new l.M(s.lng-g,s.lat-d),new l.M(s.lng+g,s.lat+d))}}class It{constructor(s,f,d){this.bounds=Ne.convert(this.validateBounds(s)),this.minzoom=f||0,this.maxzoom=d||24}validateBounds(s){return Array.isArray(s)&&s.length===4?[Math.max(-180,s[0]),Math.max(-90,s[1]),Math.min(180,s[2]),Math.min(90,s[3])]:[-180,-90,180,90]}contains(s){const f=Math.pow(2,s.z),d=Math.floor(l.N(this.bounds.getWest())*f),g=Math.floor(l.O(this.bounds.getNorth())*f),v=Math.ceil(l.N(this.bounds.getEast())*f),C=Math.ceil(l.O(this.bounds.getSouth())*f);return s.x>=d&&s.x=g&&s.y{this._options.tiles=s}),this}setUrl(s){return this.setSourceProperty(()=>{this.url=s,this._options.url=s}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return l.e({},this._options)}loadTile(s){return l._(this,void 0,void 0,function*(){const f=s.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),d={request:this.map._requestManager.transformRequest(f,"Tile"),uid:s.uid,tileID:s.tileID,zoom:s.tileID.overscaledZ,tileSize:this.tileSize*s.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};d.request.collectResourceTiming=this._collectResourceTiming;let g="RT";if(s.actor&&s.state!=="expired"){if(s.state==="loading")return new Promise((v,C)=>{s.reloadPromise={resolve:v,reject:C}})}else s.actor=this.dispatcher.getActor(),g="LT";s.abortController=new AbortController;try{const v=yield s.actor.sendAsync({type:g,data:d},s.abortController);if(delete s.abortController,s.aborted)return;this._afterTileLoadWorkerResponse(s,v)}catch(v){if(delete s.abortController,s.aborted)return;if(v&&v.status!==404)throw v;this._afterTileLoadWorkerResponse(s,null)}})}_afterTileLoadWorkerResponse(s,f){if(f&&f.resourceTiming&&(s.resourceTiming=f.resourceTiming),f&&this.map._refreshExpiredTiles&&s.setExpiryData(f),s.loadVectorData(f,this.map.painter),s.reloadPromise){const d=s.reloadPromise;s.reloadPromise=null,this.loadTile(s).then(d.resolve).catch(d.reject)}}abortTile(s){return l._(this,void 0,void 0,function*(){s.abortController&&(s.abortController.abort(),delete s.abortController),s.actor&&(yield s.actor.sendAsync({type:"AT",data:{uid:s.uid,type:this.type,source:this.id}}))})}unloadTile(s){return l._(this,void 0,void 0,function*(){s.unloadVectorData(),s.actor&&(yield s.actor.sendAsync({type:"RMT",data:{uid:s.uid,type:this.type,source:this.id}}))})}hasTransition(){return!1}}class Be extends l.E{constructor(s,f,d,g){super(),this.id=s,this.dispatcher=d,this.setEventedParent(g),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=l.e({type:"raster"},f),l.e(this,l.L(f,["url","scheme","tileSize"]))}load(){return l._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new l.k("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const s=yield Ze(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,s&&(l.e(this,s),s.bounds&&(this.tileBounds=new It(s.bounds,this.minzoom,this.maxzoom)),this.fire(new l.k("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new l.k("data",{dataType:"source",sourceDataType:"content"})))}catch(s){this._tileJSONRequest=null,this.fire(new l.j(s))}})}loaded(){return this._loaded}onAdd(s){this.map=s,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(s){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),s(),this.load()}setTiles(s){return this.setSourceProperty(()=>{this._options.tiles=s}),this}setUrl(s){return this.setSourceProperty(()=>{this.url=s,this._options.url=s}),this}serialize(){return l.e({},this._options)}hasTile(s){return!this.tileBounds||this.tileBounds.contains(s.canonical)}loadTile(s){return l._(this,void 0,void 0,function*(){const f=s.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);s.abortController=new AbortController;try{const d=yield j.getImage(this.map._requestManager.transformRequest(f,"Tile"),s.abortController,this.map._refreshExpiredTiles);if(delete s.abortController,s.aborted)return void(s.state="unloaded");if(d&&d.data){this.map._refreshExpiredTiles&&d.cacheControl&&d.expires&&s.setExpiryData({cacheControl:d.cacheControl,expires:d.expires});const g=this.map.painter.context,v=g.gl,C=d.data;s.texture=this.map.painter.getTileTexture(C.width),s.texture?s.texture.update(C,{useMipmap:!0}):(s.texture=new me(g,C,v.RGBA,{useMipmap:!0}),s.texture.bind(v.LINEAR,v.CLAMP_TO_EDGE,v.LINEAR_MIPMAP_NEAREST),g.extTextureFilterAnisotropic&&v.texParameterf(v.TEXTURE_2D,g.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,g.extTextureFilterAnisotropicMax)),s.state="loaded"}}catch(d){if(delete s.abortController,s.aborted)s.state="unloaded";else if(d)throw s.state="errored",d}})}abortTile(s){return l._(this,void 0,void 0,function*(){s.abortController&&(s.abortController.abort(),delete s.abortController)})}unloadTile(s){return l._(this,void 0,void 0,function*(){s.texture&&this.map.painter.saveTileTexture(s.texture)})}hasTransition(){return!1}}class wn extends Be{constructor(s,f,d,g){super(s,f,d,g),this.type="raster-dem",this.maxzoom=22,this._options=l.e({type:"raster-dem"},f),this.encoding=f.encoding||"mapbox",this.redFactor=f.redFactor,this.greenFactor=f.greenFactor,this.blueFactor=f.blueFactor,this.baseShift=f.baseShift}loadTile(s){return l._(this,void 0,void 0,function*(){const f=s.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),d=this.map._requestManager.transformRequest(f,"Tile");s.neighboringTiles=this._getNeighboringTiles(s.tileID),s.abortController=new AbortController;try{const g=yield j.getImage(d,s.abortController,this.map._refreshExpiredTiles);if(delete s.abortController,s.aborted)return void(s.state="unloaded");if(g&&g.data){const v=g.data;this.map._refreshExpiredTiles&&g.cacheControl&&g.expires&&s.setExpiryData({cacheControl:g.cacheControl,expires:g.expires});const C=l.b(v)&&l.S()?v:yield this.readImageNow(v),L={type:this.type,uid:s.uid,source:this.id,rawImageData:C,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!s.actor||s.state==="expired"){s.actor=this.dispatcher.getActor();const M=yield s.actor.sendAsync({type:"LDT",data:L});s.dem=M,s.needsHillshadePrepare=!0,s.needsTerrainPrepare=!0,s.state="loaded"}}}catch(g){if(delete s.abortController,s.aborted)s.state="unloaded";else if(g)throw s.state="errored",g}})}readImageNow(s){return l._(this,void 0,void 0,function*(){if(typeof VideoFrame<"u"&&l.U()){const f=s.width+2,d=s.height+2;try{return new l.R({width:f,height:d},yield l.V(s,-1,-1,f,d))}catch{}}return E.getImageData(s,1)})}_getNeighboringTiles(s){const f=s.canonical,d=Math.pow(2,f.z),g=(f.x-1+d)%d,v=f.x===0?s.wrap-1:s.wrap,C=(f.x+1+d)%d,L=f.x+1===d?s.wrap+1:s.wrap,M={};return M[new l.Q(s.overscaledZ,v,f.z,g,f.y).key]={backfilled:!1},M[new l.Q(s.overscaledZ,L,f.z,C,f.y).key]={backfilled:!1},f.y>0&&(M[new l.Q(s.overscaledZ,v,f.z,g,f.y-1).key]={backfilled:!1},M[new l.Q(s.overscaledZ,s.wrap,f.z,f.x,f.y-1).key]={backfilled:!1},M[new l.Q(s.overscaledZ,L,f.z,C,f.y-1).key]={backfilled:!1}),f.y+10&&l.e(v,{resourceTiming:g}),this.fire(new l.k("data",Object.assign(Object.assign({},v),{sourceDataType:"metadata"}))),this.fire(new l.k("data",Object.assign(Object.assign({},v),{sourceDataType:"content"})))}catch(d){if(this._pendingLoads--,this._removed)return void this.fire(new l.k("dataabort",{dataType:"source"}));this.fire(new l.j(d))}})}loaded(){return this._pendingLoads===0}loadTile(s){return l._(this,void 0,void 0,function*(){const f=s.actor?"RT":"LT";s.actor=this.actor;const d={type:this.type,uid:s.uid,tileID:s.tileID,zoom:s.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};s.abortController=new AbortController;const g=yield this.actor.sendAsync({type:f,data:d},s.abortController);delete s.abortController,s.unloadVectorData(),s.aborted||s.loadVectorData(g,this.map.painter,f==="RT")})}abortTile(s){return l._(this,void 0,void 0,function*(){s.abortController&&(s.abortController.abort(),delete s.abortController),s.aborted=!0})}unloadTile(s){return l._(this,void 0,void 0,function*(){s.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:s.uid,type:this.type,source:this.id}})})}onRemove(){this._removed=!0,this.actor.sendAsync({type:"RS",data:{type:this.type,source:this.id}})}serialize(){return l.e({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}var gn=l.X([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class ar extends l.E{constructor(s,f,d,g){super(),this.id=s,this.dispatcher=d,this.coordinates=f.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(g),this.options=f}load(s){return l._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new l.k("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{const f=yield j.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,f&&f.data&&(this.image=f.data,s&&(this.coordinates=s),this._finishLoading())}catch(f){this._request=null,this._loaded=!0,this.fire(new l.j(f))}})}loaded(){return this._loaded}updateImage(s){return s.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=s.url,this.load(s.coordinates).finally(()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new l.k("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(s){this.map=s,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(s){this.coordinates=s;const f=s.map(l.Y.fromLngLat);this.tileID=function(g){let v=1/0,C=1/0,L=-1/0,M=-1/0;for(const X of g)v=Math.min(v,X.x),C=Math.min(C,X.y),L=Math.max(L,X.x),M=Math.max(M,X.y);const R=Math.max(L-v,M-C),V=Math.max(0,Math.floor(-Math.log(R)/Math.LN2)),U=Math.pow(2,V);return new l.a0(V,Math.floor((v+L)/2*U),Math.floor((C+M)/2*U))}(f),this.minzoom=this.maxzoom=this.tileID.z;const d=f.map(g=>this.tileID.getTilePoint(g)._round());return this._boundsArray=new l.Z,this._boundsArray.emplaceBack(d[0].x,d[0].y,0,0),this._boundsArray.emplaceBack(d[1].x,d[1].y,l.W,0),this._boundsArray.emplaceBack(d[3].x,d[3].y,0,l.W),this._boundsArray.emplaceBack(d[2].x,d[2].y,l.W,l.W),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new l.k("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const s=this.map.painter.context,f=s.gl;this.boundsBuffer||(this.boundsBuffer=s.createVertexBuffer(this._boundsArray,gn.members)),this.boundsSegments||(this.boundsSegments=l.$.simpleSegment(0,0,4,2)),this.texture||(this.texture=new me(s,this.image,f.RGBA),this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE));let d=!1;for(const g in this.tiles){const v=this.tiles[g];v.state!=="loaded"&&(v.state="loaded",v.texture=this.texture,d=!0)}d&&this.fire(new l.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(s){return l._(this,void 0,void 0,function*(){this.tileID&&this.tileID.equals(s.tileID.canonical)?(this.tiles[String(s.tileID.wrap)]=s,s.buckets={}):s.state="errored"})}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}class Fo extends ar{constructor(s,f,d,g){super(s,f,d,g),this.roundZoom=!0,this.type="video",this.options=f}load(){return l._(this,void 0,void 0,function*(){this._loaded=!1;const s=this.options;this.urls=[];for(const f of s.urls)this.urls.push(this.map._requestManager.transformRequest(f,"Source").url);try{const f=yield l.a2(this.urls);if(this._loaded=!0,!f)return;this.video=f,this.video.loop=!0,this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading()}catch(f){this.fire(new l.j(f))}})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(s){if(this.video){const f=this.video.seekable;sf.end(0)?this.fire(new l.j(new l.a1(`sources.${this.id}`,null,`Playback for this video can be set only between the ${f.start(0)} and ${f.end(0)}-second mark.`))):this.video.currentTime=s}}getVideo(){return this.video}onAdd(s){this.map||(this.map=s,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const s=this.map.painter.context,f=s.gl;this.boundsBuffer||(this.boundsBuffer=s.createVertexBuffer(this._boundsArray,gn.members)),this.boundsSegments||(this.boundsSegments=l.$.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE),f.texSubImage2D(f.TEXTURE_2D,0,0,0,f.RGBA,f.UNSIGNED_BYTE,this.video)):(this.texture=new me(s,this.video,f.RGBA),this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE));let d=!1;for(const g in this.tiles){const v=this.tiles[g];v.state!=="loaded"&&(v.state="loaded",v.texture=this.texture,d=!0)}d&&this.fire(new l.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class Is extends ar{constructor(s,f,d,g){super(s,f,d,g),f.coordinates?Array.isArray(f.coordinates)&&f.coordinates.length===4&&!f.coordinates.some(v=>!Array.isArray(v)||v.length!==2||v.some(C=>typeof C!="number"))||this.fire(new l.j(new l.a1(`sources.${s}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new l.j(new l.a1(`sources.${s}`,null,'missing required property "coordinates"'))),f.animate&&typeof f.animate!="boolean"&&this.fire(new l.j(new l.a1(`sources.${s}`,null,'optional "animate" property must be a boolean value'))),f.canvas?typeof f.canvas=="string"||f.canvas instanceof HTMLCanvasElement||this.fire(new l.j(new l.a1(`sources.${s}`,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 l.j(new l.a1(`sources.${s}`,null,'missing required property "canvas"'))),this.options=f,this.animate=f.animate===void 0||f.animate}load(){return l._(this,void 0,void 0,function*(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new l.j(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())})}getCanvas(){return this.canvas}onAdd(s){this.map=s,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let s=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,s=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,s=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const f=this.map.painter.context,d=f.gl;this.boundsBuffer||(this.boundsBuffer=f.createVertexBuffer(this._boundsArray,gn.members)),this.boundsSegments||(this.boundsSegments=l.$.simpleSegment(0,0,4,2)),this.texture?(s||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new me(f,this.canvas,d.RGBA,{premultiply:!0});let g=!1;for(const v in this.tiles){const C=this.tiles[v];C.state!=="loaded"&&(C.state="loaded",C.texture=this.texture,g=!0)}g&&this.fire(new l.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const s of[this.canvas.width,this.canvas.height])if(isNaN(s)||s<=0)return!0;return!1}}const Ys={},tl=y=>{switch(y){case"geojson":return pi;case"image":return ar;case"raster":return Be;case"raster-dem":return wn;case"vector":return Sr;case"video":return Fo;case"canvas":return Is}return Ys[y]},Oi="RTLPluginLoaded";class Rl extends l.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=Yn()}_syncState(s){return this.status=s,this.dispatcher.broadcast("SRPS",{pluginStatus:s,pluginURL:this.url}).catch(f=>{throw this.status="error",f})}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(s){return l._(this,arguments,void 0,function*(f,d=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=E.resolveURL(f),!this.url)throw new Error(`requested url ${f} is invalid`);if(this.status==="unavailable"){if(!d)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if(this.status==="requested")return this._requestImport()})}_requestImport(){return l._(this,void 0,void 0,function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new l.k(Oi))})}lazyLoad(){this.status==="unavailable"?this.status="requested":this.status==="deferred"&&this._requestImport()}}let Cs=null;function st(){return Cs||(Cs=new Rl),Cs}class as{constructor(s,f){this.timeAdded=0,this.fadeEndTime=0,this.tileID=s,this.uid=l.a3(),this.uses=0,this.tileSize=f,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state="loading"}registerFadeDuration(s){const f=s+this.timeAdded;fv.getLayer(R)).filter(Boolean);if(M.length!==0){L.layers=M,L.stateDependentLayerIds&&(L.stateDependentLayers=L.stateDependentLayerIds.map(R=>M.filter(V=>V.id===R)[0]));for(const R of M)C[R.id]=L}}return C}(s.buckets,f.style),this.hasSymbolBuckets=!1;for(const g in this.buckets){const v=this.buckets[g];if(v instanceof l.a5){if(this.hasSymbolBuckets=!0,!d)break;v.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const g in this.buckets){const v=this.buckets[g];if(v instanceof l.a5&&v.hasRTLText){this.hasRTLText=!0,st().lazyLoad();break}}this.queryPadding=0;for(const g in this.buckets){const v=this.buckets[g];this.queryPadding=Math.max(this.queryPadding,f.style.getLayer(g).queryRadius(v))}s.imageAtlas&&(this.imageAtlas=s.imageAtlas),s.glyphAtlasImage&&(this.glyphAtlasImage=s.glyphAtlasImage)}else this.collisionBoxArray=new l.a4}unloadVectorData(){for(const s in this.buckets)this.buckets[s].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"}getBucket(s){return this.buckets[s.id]}upload(s){for(const d in this.buckets){const g=this.buckets[d];g.uploadPending()&&g.upload(s)}const f=s.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new me(s,this.imageAtlas.image,f.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new me(s,this.glyphAtlasImage,f.ALPHA),this.glyphAtlasImage=null)}prepare(s){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(s,this.imageAtlasTexture)}queryRenderedFeatures(s,f,d,g,v,C,L,M,R,V){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:g,cameraQueryGeometry:v,scale:C,tileSize:this.tileSize,pixelPosMatrix:V,transform:M,params:L,queryPadding:this.queryPadding*R},s,f,d):{}}querySourceFeatures(s,f){const d=this.latestFeatureIndex;if(!d||!d.rawTileData)return;const g=d.loadVTLayers(),v=f&&f.sourceLayer?f.sourceLayer:"",C=g._geojsonTileLayer||g[v];if(!C)return;const L=l.a6(f&&f.filter),{z:M,x:R,y:V}=this.tileID.canonical,U={z:M,x:R,y:V};for(let X=0;Xd)g=!1;else if(f)if(this.expirationTime{this.remove(s,v)},d)),this.data[g].push(v),this.order.push(g),this.order.length>this.max){const C=this._getAndRemoveByKey(this.order[0]);C&&this.onRemove(C)}return this}has(s){return s.wrapped().key in this.data}getAndRemove(s){return this.has(s)?this._getAndRemoveByKey(s.wrapped().key):null}_getAndRemoveByKey(s){const f=this.data[s].shift();return f.timeout&&clearTimeout(f.timeout),this.data[s].length===0&&delete this.data[s],this.order.splice(this.order.indexOf(s),1),f.value}getByKey(s){const f=this.data[s];return f?f[0].value:null}get(s){return this.has(s)?this.data[s.wrapped().key][0].value:null}remove(s,f){if(!this.has(s))return this;const d=s.wrapped().key,g=f===void 0?0:this.data[d].indexOf(f),v=this.data[d][g];return this.data[d].splice(g,1),v.timeout&&clearTimeout(v.timeout),this.data[d].length===0&&delete this.data[d],this.onRemove(v.value),this.order.splice(this.order.indexOf(d),1),this}setMaxSize(s){for(this.max=s;this.order.length>this.max;){const f=this._getAndRemoveByKey(this.order[0]);f&&this.onRemove(f)}return this}filter(s){const f=[];for(const d in this.data)for(const g of this.data[d])s(g.value)||f.push(g);for(const d of f)this.remove(d.value.tileID,d)}}class Nl{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(s,f,d){const g=String(f);if(this.stateChanges[s]=this.stateChanges[s]||{},this.stateChanges[s][g]=this.stateChanges[s][g]||{},l.e(this.stateChanges[s][g],d),this.deletedStates[s]===null){this.deletedStates[s]={};for(const v in this.state[s])v!==g&&(this.deletedStates[s][v]=null)}else if(this.deletedStates[s]&&this.deletedStates[s][g]===null){this.deletedStates[s][g]={};for(const v in this.state[s][g])d[v]||(this.deletedStates[s][g][v]=null)}else for(const v in d)this.deletedStates[s]&&this.deletedStates[s][g]&&this.deletedStates[s][g][v]===null&&delete this.deletedStates[s][g][v]}removeFeatureState(s,f,d){if(this.deletedStates[s]===null)return;const g=String(f);if(this.deletedStates[s]=this.deletedStates[s]||{},d&&f!==void 0)this.deletedStates[s][g]!==null&&(this.deletedStates[s][g]=this.deletedStates[s][g]||{},this.deletedStates[s][g][d]=null);else if(f!==void 0)if(this.stateChanges[s]&&this.stateChanges[s][g])for(d in this.deletedStates[s][g]={},this.stateChanges[s][g])this.deletedStates[s][g][d]=null;else this.deletedStates[s][g]=null;else this.deletedStates[s]=null}getState(s,f){const d=String(f),g=l.e({},(this.state[s]||{})[d],(this.stateChanges[s]||{})[d]);if(this.deletedStates[s]===null)return{};if(this.deletedStates[s]){const v=this.deletedStates[s][f];if(v===null)return{};for(const C in v)delete g[C]}return g}initializeTileState(s,f){s.setFeatureState(this.state,f)}coalesceChanges(s,f){const d={};for(const g in this.stateChanges){this.state[g]=this.state[g]||{};const v={};for(const C in this.stateChanges[g])this.state[g][C]||(this.state[g][C]={}),l.e(this.state[g][C],this.stateChanges[g][C]),v[C]=this.state[g][C];d[g]=v}for(const g in this.deletedStates){this.state[g]=this.state[g]||{};const v={};if(this.deletedStates[g]===null)for(const C in this.state[g])v[C]={},this.state[g][C]={};else for(const C in this.deletedStates[g]){if(this.deletedStates[g][C]===null)this.state[g][C]={};else for(const L of Object.keys(this.deletedStates[g][C]))delete this.state[g][C][L];v[C]=this.state[g][C]}d[g]=d[g]||{},l.e(d[g],v)}if(this.stateChanges={},this.deletedStates={},Object.keys(d).length!==0)for(const g in s)s[g].setFeatureState(d,f)}}class ni extends l.E{constructor(s,f,d){super(),this.id=s,this.dispatcher=d,this.on("data",g=>this._dataHandler(g)),this.on("dataloading",()=>{this._sourceErrored=!1}),this.on("error",()=>{this._sourceErrored=this._source.loaded()}),this._source=((g,v,C,L)=>{const M=new(tl(v.type))(g,v,C,L);if(M.id!==g)throw new Error(`Expected Source id to be ${g} instead of ${M.id}`);return M})(s,f,d,this),this._tiles={},this._cache=new so(0,g=>this._unloadTile(g)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new Nl,this._didEmitContent=!1,this._updated=!1}onAdd(s){this.map=s,this._maxTileCacheSize=s?s._maxTileCacheSize:null,this._maxTileCacheZoomLevels=s?s._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(s)}onRemove(s){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(s)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(const s in this._tiles){const f=this._tiles[s];if(f.state!=="loaded"&&f.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const s=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,s&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(s,f,d){return l._(this,void 0,void 0,function*(){try{yield this._source.loadTile(s),this._tileLoaded(s,f,d)}catch(g){s.state="errored",g.status!==404?this._source.fire(new l.j(g,{tile:s})):this.update(this.transform,this.terrain)}})}_unloadTile(s){this._source.unloadTile&&this._source.unloadTile(s)}_abortTile(s){this._source.abortTile&&this._source.abortTile(s),this._source.fire(new l.k("dataabort",{tile:s,coord:s.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(s){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const f in this._tiles){const d=this._tiles[f];d.upload(s),d.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(s=>s.tileID).sort(ft).map(s=>s.key)}getRenderableIds(s){const f=[];for(const d in this._tiles)this._isIdRenderable(d,s)&&f.push(this._tiles[d]);return s?f.sort((d,g)=>{const v=d.tileID,C=g.tileID,L=new l.P(v.canonical.x,v.canonical.y)._rotate(this.transform.angle),M=new l.P(C.canonical.x,C.canonical.y)._rotate(this.transform.angle);return v.overscaledZ-C.overscaledZ||M.y-L.y||M.x-L.x}).map(d=>d.tileID.key):f.map(d=>d.tileID).sort(ft).map(d=>d.key)}hasRenderableParent(s){const f=this.findLoadedParent(s,0);return!!f&&this._isIdRenderable(f.tileID.key)}_isIdRenderable(s,f){return this._tiles[s]&&this._tiles[s].hasData()&&!this._coveredTiles[s]&&(f||!this._tiles[s].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const s in this._tiles)this._tiles[s].state!=="errored"&&this._reloadTile(s,"reloading")}}_reloadTile(s,f){return l._(this,void 0,void 0,function*(){const d=this._tiles[s];d&&(d.state!=="loading"&&(d.state=f),yield this._loadTile(d,s,f))})}_tileLoaded(s,f,d){s.timeAdded=E.now(),d==="expired"&&(s.refreshedUponExpiration=!0),this._setTileReloadTimer(f,s),this.getSource().type==="raster-dem"&&s.dem&&this._backfillDEM(s),this._state.initializeTileState(s,this.map?this.map.painter:null),s.aborted||this._source.fire(new l.k("data",{dataType:"source",tile:s,coord:s.tileID}))}_backfillDEM(s){const f=this.getRenderableIds();for(let g=0;g1||(Math.abs(C)>1&&(Math.abs(C+M)===1?C+=M:Math.abs(C-M)===1&&(C-=M)),v.dem&&g.dem&&(g.dem.backfillBorder(v.dem,C,L),g.neighboringTiles&&g.neighboringTiles[R]&&(g.neighboringTiles[R].backfilled=!0)))}}getTile(s){return this.getTileByID(s.key)}getTileByID(s){return this._tiles[s]}_retainLoadedChildren(s,f,d,g){for(const v in this._tiles){let C=this._tiles[v];if(g[v]||!C.hasData()||C.tileID.overscaledZ<=f||C.tileID.overscaledZ>d)continue;let L=C.tileID;for(;C&&C.tileID.overscaledZ>f+1;){const R=C.tileID.scaledTo(C.tileID.overscaledZ-1);C=this._tiles[R.key],C&&C.hasData()&&(L=R)}let M=L;for(;M.overscaledZ>f;)if(M=M.scaledTo(M.overscaledZ-1),s[M.key]){g[L.key]=L;break}}}findLoadedParent(s,f){if(s.key in this._loadedParentTiles){const d=this._loadedParentTiles[s.key];return d&&d.tileID.overscaledZ>=f?d:null}for(let d=s.overscaledZ-1;d>=f;d--){const g=s.scaledTo(d),v=this._getLoadedTile(g);if(v)return v}}_getLoadedTile(s){const f=this._tiles[s.key];return f&&f.hasData()?f:this._cache.getByKey(s.wrapped().key)}updateCacheSize(s){const f=Math.ceil(s.width/this._source.tileSize)+1,d=Math.ceil(s.height/this._source.tileSize)+1,g=Math.floor(f*d*(this._maxTileCacheZoomLevels===null?l.a.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),v=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,g):g;this._cache.setMaxSize(v)}handleWrapJump(s){const f=Math.round((s-(this._prevLng===void 0?s:this._prevLng))/360);if(this._prevLng=s,f){const d={};for(const g in this._tiles){const v=this._tiles[g];v.tileID=v.tileID.unwrapTo(v.tileID.wrap+f),d[v.tileID.key]=v}this._tiles=d;for(const g in this._timers)clearTimeout(this._timers[g]),delete this._timers[g];for(const g in this._tiles)this._setTileReloadTimer(g,this._tiles[g])}}update(s,f){if(!this._sourceLoaded||this._paused)return;let d;this.transform=s,this.terrain=f,this.updateCacheSize(s),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?d=s.getVisibleUnwrappedCoordinates(this._source.tileID).map(V=>new l.Q(V.canonical.z,V.wrap,V.canonical.z,V.canonical.x,V.canonical.y)):(d=s.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:f}),this._source.hasTile&&(d=d.filter(V=>this._source.hasTile(V)))):d=[];const g=s.coveringZoomLevel(this._source),v=Math.max(g-ni.maxOverzooming,this._source.minzoom),C=Math.max(g+ni.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const V={};for(const U of d)if(U.canonical.z>this._source.minzoom){const X=U.scaledTo(U.canonical.z-1);V[X.key]=X;const oe=U.scaledTo(Math.max(this._source.minzoom,Math.min(U.canonical.z,5)));V[oe.key]=oe}d=d.concat(Object.values(V))}const L=d.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,L&&this.fire(new l.k("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const M=this._updateRetainedTiles(d,g);if(un(this._source.type)){const V={},U={},X=Object.keys(M),oe=E.now();for(const ie of X){const ce=M[ie],ee=this._tiles[ie];if(!ee||ee.fadeEndTime!==0&&ee.fadeEndTime<=oe)continue;const Se=this.findLoadedParent(ce,v);Se&&(this._addTile(Se.tileID),V[Se.tileID.key]=Se.tileID),U[ie]=ce}this._retainLoadedChildren(U,g,C,M);for(const ie in V)M[ie]||(this._coveredTiles[ie]=!0,M[ie]=V[ie]);if(f){const ie={},ce={};for(const ee of d)this._tiles[ee.key].hasData()?ie[ee.key]=ee:ce[ee.key]=ee;for(const ee in ce){const Se=ce[ee].children(this._source.maxzoom);this._tiles[Se[0].key]&&this._tiles[Se[1].key]&&this._tiles[Se[2].key]&&this._tiles[Se[3].key]&&(ie[Se[0].key]=M[Se[0].key]=Se[0],ie[Se[1].key]=M[Se[1].key]=Se[1],ie[Se[2].key]=M[Se[2].key]=Se[2],ie[Se[3].key]=M[Se[3].key]=Se[3],delete ce[ee])}for(const ee in ce){const Se=this.findLoadedParent(ce[ee],this._source.minzoom);if(Se){ie[Se.tileID.key]=M[Se.tileID.key]=Se.tileID;for(const ze in ie)ie[ze].isChildOf(Se.tileID)&&delete ie[ze]}}for(const ee in this._tiles)ie[ee]||(this._coveredTiles[ee]=!0)}}for(const V in M)this._tiles[V].clearFadeHold();const R=l.ab(this._tiles,M);for(const V of R){const U=this._tiles[V];U.hasSymbolBuckets&&!U.holdingForFade()?U.setHoldDuration(this.map._fadeDuration):U.hasSymbolBuckets&&!U.symbolFadeFinished()||this._removeTile(V)}this._updateLoadedParentTileCache()}releaseSymbolFadeTiles(){for(const s in this._tiles)this._tiles[s].holdingForFade()&&this._removeTile(s)}_updateRetainedTiles(s,f){const d={},g={},v=Math.max(f-ni.maxOverzooming,this._source.minzoom),C=Math.max(f+ni.maxUnderzooming,this._source.minzoom),L={};for(const M of s){const R=this._addTile(M);d[M.key]=M,R.hasData()||fthis._source.maxzoom){const U=M.children(this._source.maxzoom)[0],X=this.getTile(U);if(X&&X.hasData()){d[U.key]=U;continue}}else{const U=M.children(this._source.maxzoom);if(d[U[0].key]&&d[U[1].key]&&d[U[2].key]&&d[U[3].key])continue}let V=R.wasRequested();for(let U=M.overscaledZ-1;U>=v;--U){const X=M.scaledTo(U);if(g[X.key])break;if(g[X.key]=!0,R=this.getTile(X),!R&&V&&(R=this._addTile(X)),R){const oe=R.hasData();if((V||oe)&&(d[X.key]=X),V=R.wasRequested(),oe)break}}}return d}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const s in this._tiles){const f=[];let d,g=this._tiles[s].tileID;for(;g.overscaledZ>0;){if(g.key in this._loadedParentTiles){d=this._loadedParentTiles[g.key];break}f.push(g.key);const v=g.scaledTo(g.overscaledZ-1);if(d=this._getLoadedTile(v),d)break;g=v}for(const v of f)this._loadedParentTiles[v]=d}}_addTile(s){let f=this._tiles[s.key];if(f)return f;f=this._cache.getAndRemove(s),f&&(this._setTileReloadTimer(s.key,f),f.tileID=s,this._state.initializeTileState(f,this.map?this.map.painter:null),this._cacheTimers[s.key]&&(clearTimeout(this._cacheTimers[s.key]),delete this._cacheTimers[s.key],this._setTileReloadTimer(s.key,f)));const d=f;return f||(f=new as(s,this._source.tileSize*s.overscaleFactor()),this._loadTile(f,s.key,f.state)),f.uses++,this._tiles[s.key]=f,d||this._source.fire(new l.k("dataloading",{tile:f,coord:f.tileID,dataType:"source"})),f}_setTileReloadTimer(s,f){s in this._timers&&(clearTimeout(this._timers[s]),delete this._timers[s]);const d=f.getExpiryTimeout();d&&(this._timers[s]=setTimeout(()=>{this._reloadTile(s,"expired"),delete this._timers[s]},d))}_removeTile(s){const f=this._tiles[s];f&&(f.uses--,delete this._tiles[s],this._timers[s]&&(clearTimeout(this._timers[s]),delete this._timers[s]),f.uses>0||(f.hasData()&&f.state!=="reloading"?this._cache.add(f.tileID,f,f.getExpiryTimeout()):(f.aborted=!0,this._abortTile(f),this._unloadTile(f))))}_dataHandler(s){const f=s.sourceDataType;s.dataType==="source"&&f==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&s.dataType==="source"&&f==="content"&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const s in this._tiles)this._removeTile(s);this._cache.reset()}tilesIn(s,f,d){const g=[],v=this.transform;if(!v)return g;const C=d?v.getCameraQueryGeometry(s):s,L=s.map(ie=>v.pointCoordinate(ie,this.terrain)),M=C.map(ie=>v.pointCoordinate(ie,this.terrain)),R=this.getIds();let V=1/0,U=1/0,X=-1/0,oe=-1/0;for(const ie of M)V=Math.min(V,ie.x),U=Math.min(U,ie.y),X=Math.max(X,ie.x),oe=Math.max(oe,ie.y);for(let ie=0;ie=0&&fe[1].y+ze>=0){const Me=L.map(Ue=>ee.getTilePoint(Ue)),Fe=M.map(Ue=>ee.getTilePoint(Ue));g.push({tile:ce,tileID:ee,queryGeometry:Me,cameraQueryGeometry:Fe,scale:Se})}}return g}getVisibleCoordinates(s){const f=this.getRenderableIds(s).map(d=>this._tiles[d].tileID);for(const d of f)d.posMatrix=this.transform.calculatePosMatrix(d.toUnwrapped());return f}hasTransition(){if(this._source.hasTransition())return!0;if(un(this._source.type)){const s=E.now();for(const f in this._tiles)if(this._tiles[f].fadeEndTime>=s)return!0}return!1}setFeatureState(s,f,d){this._state.updateState(s=s||"_geojsonTileLayer",f,d)}removeFeatureState(s,f,d){this._state.removeFeatureState(s=s||"_geojsonTileLayer",f,d)}getFeatureState(s,f){return this._state.getState(s=s||"_geojsonTileLayer",f)}setDependencies(s,f,d){const g=this._tiles[s];g&&g.setDependencies(f,d)}reloadTilesForDependencies(s,f){for(const d in this._tiles)this._tiles[d].hasDependency(s,f)&&this._reloadTile(d,"reloading");this._cache.filter(d=>!d.hasDependency(s,f))}}function ft(y,s){const f=Math.abs(2*y.wrap)-+(y.wrap<0),d=Math.abs(2*s.wrap)-+(s.wrap<0);return y.overscaledZ-s.overscaledZ||d-f||s.canonical.y-y.canonical.y||s.canonical.x-y.canonical.x}function un(y){return y==="raster"||y==="image"||y==="video"}ni.maxOverzooming=10,ni.maxUnderzooming=3;class an{constructor(s,f){this.reset(s,f)}reset(s,f){this.points=s||[],this._distances=[0];for(let d=1;d0?(g-C)/L:0;return this.points[v].mult(1-M).add(this.points[f].mult(M))}}function Ur(y,s){let f=!0;return y==="always"||y!=="never"&&s!=="never"||(f=!1),f}class ls{constructor(s,f,d){const g=this.boxCells=[],v=this.circleCells=[];this.xCellCount=Math.ceil(s/d),this.yCellCount=Math.ceil(f/d);for(let C=0;Cthis.width||g<0||f>this.height)return[];const M=[];if(s<=0&&f<=0&&this.width<=d&&this.height<=g){if(v)return[{key:null,x1:s,y1:f,x2:d,y2:g}];for(let R=0;R0}hitTestCircle(s,f,d,g,v){const C=s-d,L=s+d,M=f-d,R=f+d;if(L<0||C>this.width||R<0||M>this.height)return!1;const V=[];return this._forEachCell(C,M,L,R,this._queryCellCircle,V,{hitTest:!0,overlapMode:g,circle:{x:s,y:f,radius:d},seenUids:{box:{},circle:{}}},v),V.length>0}_queryCell(s,f,d,g,v,C,L,M){const{seenUids:R,hitTest:V,overlapMode:U}=L,X=this.boxCells[v];if(X!==null){const ie=this.bboxes;for(const ce of X)if(!R.box[ce]){R.box[ce]=!0;const ee=4*ce,Se=this.boxKeys[ce];if(s<=ie[ee+2]&&f<=ie[ee+3]&&d>=ie[ee+0]&&g>=ie[ee+1]&&(!M||M(Se))&&(!V||!Ur(U,Se.overlapMode))&&(C.push({key:Se,x1:ie[ee],y1:ie[ee+1],x2:ie[ee+2],y2:ie[ee+3]}),V))return!0}}const oe=this.circleCells[v];if(oe!==null){const ie=this.circles;for(const ce of oe)if(!R.circle[ce]){R.circle[ce]=!0;const ee=3*ce,Se=this.circleKeys[ce];if(this._circleAndRectCollide(ie[ee],ie[ee+1],ie[ee+2],s,f,d,g)&&(!M||M(Se))&&(!V||!Ur(U,Se.overlapMode))){const ze=ie[ee],fe=ie[ee+1],Me=ie[ee+2];if(C.push({key:Se,x1:ze-Me,y1:fe-Me,x2:ze+Me,y2:fe+Me}),V)return!0}}}return!1}_queryCellCircle(s,f,d,g,v,C,L,M){const{circle:R,seenUids:V,overlapMode:U}=L,X=this.boxCells[v];if(X!==null){const ie=this.bboxes;for(const ce of X)if(!V.box[ce]){V.box[ce]=!0;const ee=4*ce,Se=this.boxKeys[ce];if(this._circleAndRectCollide(R.x,R.y,R.radius,ie[ee+0],ie[ee+1],ie[ee+2],ie[ee+3])&&(!M||M(Se))&&!Ur(U,Se.overlapMode))return C.push(!0),!0}}const oe=this.circleCells[v];if(oe!==null){const ie=this.circles;for(const ce of oe)if(!V.circle[ce]){V.circle[ce]=!0;const ee=3*ce,Se=this.circleKeys[ce];if(this._circlesCollide(ie[ee],ie[ee+1],ie[ee+2],R.x,R.y,R.radius)&&(!M||M(Se))&&!Ur(U,Se.overlapMode))return C.push(!0),!0}}}_forEachCell(s,f,d,g,v,C,L,M){const R=this._convertToXCellCoord(s),V=this._convertToYCellCoord(f),U=this._convertToXCellCoord(d),X=this._convertToYCellCoord(g);for(let oe=R;oe<=U;oe++)for(let ie=V;ie<=X;ie++)if(v.call(this,s,f,d,g,this.xCellCount*ie+oe,C,L,M))return}_convertToXCellCoord(s){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(s*this.xScale)))}_convertToYCellCoord(s){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(s*this.yScale)))}_circlesCollide(s,f,d,g,v,C){const L=g-s,M=v-f,R=d+C;return R*R>L*L+M*M}_circleAndRectCollide(s,f,d,g,v,C,L){const M=(C-g)/2,R=Math.abs(s-(g+M));if(R>M+d)return!1;const V=(L-v)/2,U=Math.abs(f-(v+V));if(U>V+d)return!1;if(R<=M||U<=V)return!0;const X=R-M,oe=U-V;return X*X+oe*oe<=d*d}}function sn(y,s,f,d,g){const v=l.F();return s?(l.J(v,v,[1/g,1/g,1]),f||l.ad(v,v,d.angle)):l.K(v,d.labelPlaneMatrix,y),v}function Ma(y,s,f,d,g){if(s){const v=l.ae(y);return l.J(v,v,[g,g,1]),f||l.ad(v,v,-d.angle),v}return d.glCoordMatrix}function Wr(y,s,f){let d;f?(d=[y.x,y.y,f(y.x,y.y),1],l.af(d,d,s)):(d=[y.x,y.y,0,1],At(d,d,s));const g=d[3];return{point:new l.P(d[0]/g,d[1]/g),signedDistanceFromCamera:g}}function ue(y,s){return .5+y/s*.5}function q(y,s){const f=y[0]/y[3],d=y[1]/y[3];return f>=-s[0]&&f<=s[0]&&d>=-s[1]&&d<=s[1]}function W(y,s,f,d,g,v,C,L,M,R){const V=d?y.textSizeData:y.iconSizeData,U=l.ag(V,f.transform.zoom),X=[256/f.width*2+1,256/f.height*2+1],oe=d?y.text.dynamicLayoutVertexArray:y.icon.dynamicLayoutVertexArray;oe.clear();const ie=y.lineVertexArray,ce=d?y.text.placedSymbolArray:y.icon.placedSymbolArray,ee=f.transform.width/f.transform.height;let Se=!1;for(let ze=0;zeMath.abs(f.x-s.x)*d?{useVertical:!0}:(y===l.ah.vertical?s.yf.x)?{needsFlipping:!0}:null}function Ce(y,s,f,d,g,v,C,L,M,R,V,U,X,oe,ie,ce){const ee=s/24,Se=y.lineOffsetX*ee,ze=y.lineOffsetY*ee;let fe;if(y.numGlyphs>1){const Me=y.glyphStartIndex+y.numGlyphs,Fe=y.lineStartIndex,Ue=y.lineStartIndex+y.lineLength,Xe=K(ee,L,Se,ze,f,V,U,y,M,v,X,ie,ce);if(!Xe)return{notEnoughRoom:!0};const nt=Wr(Xe.first.point,C,ce).point,tt=Wr(Xe.last.point,C,ce).point;if(d&&!f){const ut=ne(y.writingMode,nt,tt,oe);if(ut)return ut}fe=[Xe.first];for(let ut=y.glyphStartIndex+1;ut0?nt.point:Q(U,Xe,Fe,1,g,ce),ut=ne(y.writingMode,Fe,tt,oe);if(ut)return ut}const Me=Ve(ee*L.getoffsetX(y.glyphStartIndex),Se,ze,f,V,U,y.segment,y.lineStartIndex,y.lineStartIndex+y.lineLength,M,v,X,ie,ce);if(!Me)return{notEnoughRoom:!0};fe=[Me]}for(const Me of fe)l.aj(R,Me.point,Me.angle);return{}}function Q(y,s,f,d,g,v){const C=Wr(y.add(y.sub(s)._unit()),g,v).point,L=f.sub(C);return f.add(L._mult(d/L.mag()))}function Te(y,s){const{projectionCache:f,lineVertexArray:d,labelPlaneMatrix:g,tileAnchorPoint:v,distanceFromAnchor:C,getElevation:L,previousVertex:M,direction:R,absOffsetX:V}=s;if(f.projections[y])return f.projections[y];const U=new l.P(d.getx(y),d.gety(y)),X=Wr(U,g,L);if(X.signedDistanceFromCamera>0)return f.projections[y]=X.point,X.point;const oe=y-R;return Q(C===0?v:new l.P(d.getx(oe),d.gety(oe)),U,M,V-C+1,g,L)}function _e(y,s,f){return y._unit()._perp()._mult(s*f)}function ke(y,s,f,d,g,v,C,L){const{projectionCache:M,direction:R}=L;if(M.offsets[y])return M.offsets[y];const V=f.add(s);if(y+R=g)return M.offsets[y]=V,V;const U=Te(y+R,L),X=_e(U.sub(f),C,R),oe=f.add(X),ie=U.add(X);return M.offsets[y]=l.ak(v,V,oe,ie)||V,M.offsets[y]}function Ve(y,s,f,d,g,v,C,L,M,R,V,U,X,oe){const ie=d?y-s:y+s;let ce=ie>0?1:-1,ee=0;d&&(ce*=-1,ee=Math.PI),ce<0&&(ee+=Math.PI);let Se,ze,fe=ce>0?L+C:L+C+1,Me=g,Fe=g,Ue=0,Xe=0;const nt=Math.abs(ie),tt=[];let ut;for(;Ue+Xe<=nt;){if(fe+=ce,fe=M)return null;Ue+=Xe,Fe=Me,ze=Se;const mt={projectionCache:U,lineVertexArray:R,labelPlaneMatrix:V,tileAnchorPoint:v,distanceFromAnchor:Ue,getElevation:oe,previousVertex:Fe,direction:ce,absOffsetX:nt};if(Me=Te(fe,mt),f===0)tt.push(Fe),ut=Me.sub(Fe);else{let jt;const hn=Me.sub(Fe);jt=hn.mag()===0?_e(Te(fe+ce,mt).sub(Me),f,ce):_e(hn,f,ce),ze||(ze=Fe.add(jt)),Se=ke(fe,jt,Me,L,M,ze,f,mt),tt.push(ze),ut=Se.sub(ze)}Xe=ut.mag()}const pt=ut._mult((nt-Ue)/Xe)._add(ze||Fe),cn=ee+Math.atan2(Me.y-Fe.y,Me.x-Fe.x);return tt.push(pt),{point:pt,angle:X?cn:0,path:tt}}const He=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function Ye(y,s){for(let f=0;f=1;dn--)hn.push(mt.path[dn]);for(let dn=1;dnWr(yn,M,ie));hn=dn.some(yn=>yn.signedDistanceFromCamera<=0)?[]:dn.map(yn=>yn.point)}let Qt=[];if(hn.length>0){const dn=hn[0].clone(),yn=hn[0].clone();for(let Or=1;Or=ut.x&&yn.x<=pt.x&&dn.y>=ut.y&&yn.y<=pt.y?[hn]:yn.xpt.x||yn.ypt.y?[]:l.al([hn],ut.x,ut.y,pt.x,pt.y)}for(const dn of Qt){cn.reset(dn,.25*tt);let yn=0;yn=cn.length<=.5*tt?1:Math.ceil(cn.paddedLength/Ln)+1;for(let Or=0;Or=this.screenRightBoundary||gthis.screenBottomBoundary}isInsideGrid(s,f,d,g){return d>=0&&s=0&&fd.collisionGroupID===f}}return this.collisionGroups[s]}}function di(y,s,f,d,g){const{horizontalAlign:v,verticalAlign:C}=l.at(y);return new l.P(-(v-.5)*s+d[0]*g,-(C-.5)*f+d[1]*g)}function ao(y,s,f,d,g,v){const{x1:C,x2:L,y1:M,y2:R,anchorPointX:V,anchorPointY:U}=y,X=new l.P(s,f);return d&&X._rotate(g?v:-v),{x1:C+X.x,y1:M+X.y,x2:L+X.x,y2:R+X.y,anchorPointX:V,anchorPointY:U}}class xo{constructor(s,f,d,g,v){this.transform=s.clone(),this.terrain=f,this.collisionIndex=new en(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=d,this.retainedQueryData={},this.collisionGroups=new Dr(g),this.collisionCircleArrays={},this.prevPlacement=v,v&&(v.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(s,f,d,g){const v=d.getBucket(f),C=d.latestFeatureIndex;if(!v||!C||f.id!==v.layerIds[0])return;const L=d.collisionBoxArray,M=v.layers[0].layout,R=Math.pow(2,this.transform.zoom-d.tileID.overscaledZ),V=d.tileSize/l.W,U=this.transform.calculatePosMatrix(d.tileID.toUnwrapped()),X=M.get("text-pitch-alignment")==="map",oe=M.get("text-rotation-alignment")==="map",ie=rn(d,1,this.transform.zoom),ce=sn(U,X,oe,this.transform,ie);let ee=null;if(X){const ze=Ma(U,X,oe,this.transform,ie);ee=l.K([],this.transform.labelPlaneMatrix,ze)}this.retainedQueryData[v.bucketInstanceId]=new pn(v.bucketInstanceId,C,v.sourceLayerIndex,v.index,d.tileID);const Se={bucket:v,layout:M,posMatrix:U,textLabelPlaneMatrix:ce,labelToScreenMatrix:ee,scale:R,textPixelRatio:V,holdingForFade:d.holdingForFade(),collisionBoxArray:L,partiallyEvaluatedTextSize:l.ag(v.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(v.sourceID)};if(g)for(const ze of v.sortKeyRanges){const{sortKey:fe,symbolInstanceStart:Me,symbolInstanceEnd:Fe}=ze;s.push({sortKey:fe,symbolInstanceStart:Me,symbolInstanceEnd:Fe,parameters:Se})}else s.push({symbolInstanceStart:0,symbolInstanceEnd:v.symbolInstances.length,parameters:Se})}attemptAnchorPlacement(s,f,d,g,v,C,L,M,R,V,U,X,oe,ie,ce,ee){const Se=l.ap[s.textAnchor],ze=[s.textOffset0,s.textOffset1],fe=di(Se,d,g,ze,v),Me=this.collisionIndex.placeCollisionBox(ao(f,fe.x,fe.y,C,L,this.transform.angle),U,M,R,V.predicate,ee);if((!ce||this.collisionIndex.placeCollisionBox(ao(ce,fe.x,fe.y,C,L,this.transform.angle),U,M,R,V.predicate,ee).box.length!==0)&&Me.box.length>0){let Fe;if(this.prevPlacement&&this.prevPlacement.variableOffsets[X.crossTileID]&&this.prevPlacement.placements[X.crossTileID]&&this.prevPlacement.placements[X.crossTileID].text&&(Fe=this.prevPlacement.variableOffsets[X.crossTileID].anchor),X.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[X.crossTileID]={textOffset:ze,width:d,height:g,anchor:Se,textBoxScale:v,prevAnchor:Fe},this.markUsedJustification(oe,Se,X,ie),oe.allowVerticalPlacement&&(this.markUsedOrientation(oe,ie,X),this.placedOrientations[X.crossTileID]=ie),{shift:fe,placedGlyphBoxes:Me}}}placeLayerBucketPart(s,f,d){const{bucket:g,layout:v,posMatrix:C,textLabelPlaneMatrix:L,labelToScreenMatrix:M,textPixelRatio:R,holdingForFade:V,collisionBoxArray:U,partiallyEvaluatedTextSize:X,collisionGroup:oe}=s.parameters,ie=v.get("text-optional"),ce=v.get("icon-optional"),ee=l.aq(v,"text-overlap","text-allow-overlap"),Se=ee==="always",ze=l.aq(v,"icon-overlap","icon-allow-overlap"),fe=ze==="always",Me=v.get("text-rotation-alignment")==="map",Fe=v.get("text-pitch-alignment")==="map",Ue=v.get("icon-text-fit")!=="none",Xe=v.get("symbol-z-order")==="viewport-y",nt=Se&&(fe||!g.hasIconData()||ce),tt=fe&&(Se||!g.hasTextData()||ie);!g.collisionArrays&&U&&g.deserializeCollisionBoxes(U);const ut=this.retainedQueryData[g.bucketInstanceId].tileID,pt=this.terrain?(mt,jt)=>this.terrain.getElevation(ut,mt,jt):null,cn=(mt,jt)=>{var hn,Ln;if(f[mt.crossTileID])return;if(V)return void(this.placements[mt.crossTileID]=new _r(!1,!1,!1));let Qt=!1,dn=!1,yn=!0,Or=null,Hn={box:null,offscreen:null},Go={box:null,offscreen:null},mi=null,Ir=null,gi=null,jo=0,na=0,ll=0;jt.textFeatureIndex?jo=jt.textFeatureIndex:mt.useRuntimeCollisionCircles&&(jo=mt.featureIndex),jt.verticalTextFeatureIndex&&(na=jt.verticalTextFeatureIndex);const zc=jt.textBox;if(zc){const oi=si=>{let Tr=l.ah.horizontal;if(g.allowVerticalPlacement&&!si&&this.prevPlacement){const fs=this.prevPlacement.placedOrientations[mt.crossTileID];fs&&(this.placedOrientations[mt.crossTileID]=fs,Tr=fs,this.markUsedOrientation(g,Tr,mt))}return Tr},Cr=(si,Tr)=>{if(g.allowVerticalPlacement&&mt.numVerticalGlyphVertices>0&&jt.verticalTextBox){for(const fs of g.writingModes)if(fs===l.ah.vertical?(Hn=Tr(),Go=Hn):Hn=si(),Hn&&Hn.box&&Hn.box.length)break}else Hn=si()},vr=mt.textAnchorOffsetStartIndex,hs=mt.textAnchorOffsetEndIndex;if(hs===vr){const si=(Tr,fs)=>{const ai=this.collisionIndex.placeCollisionBox(Tr,ee,R,C,oe.predicate,pt);return ai&&ai.box&&ai.box.length&&(this.markUsedOrientation(g,fs,mt),this.placedOrientations[mt.crossTileID]=fs),ai};Cr(()=>si(zc,l.ah.horizontal),()=>{const Tr=jt.verticalTextBox;return g.allowVerticalPlacement&&mt.numVerticalGlyphVertices>0&&Tr?si(Tr,l.ah.vertical):{box:null,offscreen:null}}),oi(Hn&&Hn.box&&Hn.box.length)}else{let si=l.ap[(Ln=(hn=this.prevPlacement)===null||hn===void 0?void 0:hn.variableOffsets[mt.crossTileID])===null||Ln===void 0?void 0:Ln.anchor];const Tr=(ai,Gr,Wp)=>{const ug=ai.x2-ai.x1,ql=ai.y2-ai.y1,$l=mt.textBoxScale,Qh=Ue&&ze==="never"?Gr:null;let cl={box:[],offscreen:!1},Zp=ee==="never"?1:2,cg="never";si&&Zp++;for(let Hp=0;HpTr(zc,jt.iconBox,l.ah.horizontal),()=>{const ai=jt.verticalTextBox;return g.allowVerticalPlacement&&!(Hn&&Hn.box&&Hn.box.length)&&mt.numVerticalGlyphVertices>0&&ai?Tr(ai,jt.verticalIconBox,l.ah.vertical):{box:null,offscreen:null}}),Hn&&(Qt=Hn.box,yn=Hn.offscreen);const fs=oi(Hn&&Hn.box);if(!Qt&&this.prevPlacement){const ai=this.prevPlacement.variableOffsets[mt.crossTileID];ai&&(this.variableOffsets[mt.crossTileID]=ai,this.markUsedJustification(g,ai.anchor,mt,fs))}}}if(mi=Hn,Qt=mi&&mi.box&&mi.box.length>0,yn=mi&&mi.offscreen,mt.useRuntimeCollisionCircles){const oi=g.text.placedSymbolArray.get(mt.centerJustifiedTextSymbolIndex),Cr=l.ai(g.textSizeData,X,oi),vr=v.get("text-padding");Ir=this.collisionIndex.placeCollisionCircles(ee,oi,g.lineVertexArray,g.glyphOffsetArray,Cr,C,L,M,d,Fe,oe.predicate,mt.collisionCircleDiameter,vr,pt),Ir.circles.length&&Ir.collisionDetected&&!d&&l.w("Collisions detected, but collision boxes are not shown"),Qt=Se||Ir.circles.length>0&&!Ir.collisionDetected,yn=yn&&Ir.offscreen}if(jt.iconFeatureIndex&&(ll=jt.iconFeatureIndex),jt.iconBox){const oi=Cr=>{const vr=Ue&&Or?ao(Cr,Or.x,Or.y,Me,Fe,this.transform.angle):Cr;return this.collisionIndex.placeCollisionBox(vr,ze,R,C,oe.predicate,pt)};Go&&Go.box&&Go.box.length&&jt.verticalIconBox?(gi=oi(jt.verticalIconBox),dn=gi.box.length>0):(gi=oi(jt.iconBox),dn=gi.box.length>0),yn=yn&&gi.offscreen}const ul=ie||mt.numHorizontalGlyphVertices===0&&mt.numVerticalGlyphVertices===0,ra=ce||mt.numIconVertices===0;if(ul||ra?ra?ul||(dn=dn&&Qt):Qt=dn&&Qt:dn=Qt=dn&&Qt,Qt&&mi&&mi.box&&this.collisionIndex.insertCollisionBox(mi.box,ee,v.get("text-ignore-placement"),g.bucketInstanceId,Go&&Go.box&&na?na:jo,oe.ID),dn&&gi&&this.collisionIndex.insertCollisionBox(gi.box,ze,v.get("icon-ignore-placement"),g.bucketInstanceId,ll,oe.ID),Ir&&(Qt&&this.collisionIndex.insertCollisionCircles(Ir.circles,ee,v.get("text-ignore-placement"),g.bucketInstanceId,jo,oe.ID),d)){const oi=g.bucketInstanceId;let Cr=this.collisionCircleArrays[oi];Cr===void 0&&(Cr=this.collisionCircleArrays[oi]=new ri);for(let vr=0;vr=0;--jt){const hn=mt[jt];cn(g.symbolInstances.get(hn),g.collisionArrays[hn])}}else for(let mt=s.symbolInstanceStart;mt=0&&(s.text.placedSymbolArray.get(L).crossTileID=v>=0&&L!==v?0:d.crossTileID)}markUsedOrientation(s,f,d){const g=f===l.ah.horizontal||f===l.ah.horizontalOnly?f:0,v=f===l.ah.vertical?f:0,C=[d.leftJustifiedTextSymbolIndex,d.centerJustifiedTextSymbolIndex,d.rightJustifiedTextSymbolIndex];for(const L of C)s.text.placedSymbolArray.get(L).placedOrientation=g;d.verticalPlacedTextSymbolIndex&&(s.text.placedSymbolArray.get(d.verticalPlacedTextSymbolIndex).placedOrientation=v)}commit(s){this.commitTime=s,this.zoomAtLastRecencyCheck=this.transform.zoom;const f=this.prevPlacement;let d=!1;this.prevZoomAdjustment=f?f.zoomAdjustment(this.transform.zoom):0;const g=f?f.symbolFadeChange(s):1,v=f?f.opacities:{},C=f?f.variableOffsets:{},L=f?f.placedOrientations:{};for(const M in this.placements){const R=this.placements[M],V=v[M];V?(this.opacities[M]=new Kn(V,g,R.text,R.icon),d=d||R.text!==V.text.placed||R.icon!==V.icon.placed):(this.opacities[M]=new Kn(null,g,R.text,R.icon,R.skipFade),d=d||R.text||R.icon)}for(const M in v){const R=v[M];if(!this.opacities[M]){const V=new Kn(R,g,!1,!1);V.isHidden()||(this.opacities[M]=V,d=d||R.text.placed||R.icon.placed)}}for(const M in C)this.variableOffsets[M]||!this.opacities[M]||this.opacities[M].isHidden()||(this.variableOffsets[M]=C[M]);for(const M in L)this.placedOrientations[M]||!this.opacities[M]||this.opacities[M].isHidden()||(this.placedOrientations[M]=L[M]);if(f&&f.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");d?this.lastPlacementChangeTime=s:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=f?f.lastPlacementChangeTime:s)}updateLayerOpacities(s,f){const d={};for(const g of f){const v=g.getBucket(s);v&&g.latestFeatureIndex&&s.id===v.layerIds[0]&&this.updateBucketOpacities(v,d,g.collisionBoxArray)}}updateBucketOpacities(s,f,d){s.hasTextData()&&(s.text.opacityVertexArray.clear(),s.text.hasVisibleVertices=!1),s.hasIconData()&&(s.icon.opacityVertexArray.clear(),s.icon.hasVisibleVertices=!1),s.hasIconCollisionBoxData()&&s.iconCollisionBox.collisionVertexArray.clear(),s.hasTextCollisionBoxData()&&s.textCollisionBox.collisionVertexArray.clear();const g=s.layers[0],v=g.layout,C=new Kn(null,0,!1,!1,!0),L=v.get("text-allow-overlap"),M=v.get("icon-allow-overlap"),R=g._unevaluatedLayout.hasValue("text-variable-anchor")||g._unevaluatedLayout.hasValue("text-variable-anchor-offset"),V=v.get("text-rotation-alignment")==="map",U=v.get("text-pitch-alignment")==="map",X=v.get("icon-text-fit")!=="none",oe=new Kn(null,0,L&&(M||!s.hasIconData()||v.get("icon-optional")),M&&(L||!s.hasTextData()||v.get("text-optional")),!0);!s.collisionArrays&&d&&(s.hasIconCollisionBoxData()||s.hasTextCollisionBoxData())&&s.deserializeCollisionBoxes(d);const ie=(ce,ee,Se)=>{for(let ze=0;ze0,Ue=this.placedOrientations[ee.crossTileID],Xe=Ue===l.ah.vertical,nt=Ue===l.ah.horizontal||Ue===l.ah.horizontalOnly;if(Se>0||ze>0){const tt=wo(Me.text);ie(s.text,Se,Xe?mc:tt),ie(s.text,ze,nt?mc:tt);const ut=Me.text.isHidden();[ee.rightJustifiedTextSymbolIndex,ee.centerJustifiedTextSymbolIndex,ee.leftJustifiedTextSymbolIndex].forEach(mt=>{mt>=0&&(s.text.placedSymbolArray.get(mt).hidden=ut||Xe?1:0)}),ee.verticalPlacedTextSymbolIndex>=0&&(s.text.placedSymbolArray.get(ee.verticalPlacedTextSymbolIndex).hidden=ut||nt?1:0);const pt=this.variableOffsets[ee.crossTileID];pt&&this.markUsedJustification(s,pt.anchor,ee,Ue);const cn=this.placedOrientations[ee.crossTileID];cn&&(this.markUsedJustification(s,"left",ee,cn),this.markUsedOrientation(s,cn,ee))}if(Fe){const tt=wo(Me.icon),ut=!(X&&ee.verticalPlacedIconSymbolIndex&&Xe);ee.placedIconSymbolIndex>=0&&(ie(s.icon,ee.numIconVertices,ut?tt:mc),s.icon.placedSymbolArray.get(ee.placedIconSymbolIndex).hidden=Me.icon.isHidden()),ee.verticalPlacedIconSymbolIndex>=0&&(ie(s.icon,ee.numVerticalIconVertices,ut?mc:tt),s.icon.placedSymbolArray.get(ee.verticalPlacedIconSymbolIndex).hidden=Me.icon.isHidden())}if(s.hasIconCollisionBoxData()||s.hasTextCollisionBoxData()){const tt=s.collisionArrays[ce];if(tt){let ut=new l.P(0,0);if(tt.textBox||tt.verticalTextBox){let cn=!0;if(R){const mt=this.variableOffsets[fe];mt?(ut=di(mt.anchor,mt.width,mt.height,mt.textOffset,mt.textBoxScale),V&&ut._rotate(U?this.transform.angle:-this.transform.angle)):cn=!1}tt.textBox&&Ci(s.textCollisionBox.collisionVertexArray,Me.text.placed,!cn||Xe,ut.x,ut.y),tt.verticalTextBox&&Ci(s.textCollisionBox.collisionVertexArray,Me.text.placed,!cn||nt,ut.x,ut.y)}const pt=!!(!nt&&tt.verticalIconBox);tt.iconBox&&Ci(s.iconCollisionBox.collisionVertexArray,Me.icon.placed,pt,X?ut.x:0,X?ut.y:0),tt.verticalIconBox&&Ci(s.iconCollisionBox.collisionVertexArray,Me.icon.placed,!pt,X?ut.x:0,X?ut.y:0)}}}if(s.sortFeatures(this.transform.angle),this.retainedQueryData[s.bucketInstanceId]&&(this.retainedQueryData[s.bucketInstanceId].featureSortOrder=s.featureSortOrder),s.hasTextData()&&s.text.opacityVertexBuffer&&s.text.opacityVertexBuffer.updateData(s.text.opacityVertexArray),s.hasIconData()&&s.icon.opacityVertexBuffer&&s.icon.opacityVertexBuffer.updateData(s.icon.opacityVertexArray),s.hasIconCollisionBoxData()&&s.iconCollisionBox.collisionVertexBuffer&&s.iconCollisionBox.collisionVertexBuffer.updateData(s.iconCollisionBox.collisionVertexArray),s.hasTextCollisionBoxData()&&s.textCollisionBox.collisionVertexBuffer&&s.textCollisionBox.collisionVertexBuffer.updateData(s.textCollisionBox.collisionVertexArray),s.text.opacityVertexArray.length!==s.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${s.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${s.text.layoutVertexArray.length}) / 4`);if(s.icon.opacityVertexArray.length!==s.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${s.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${s.icon.layoutVertexArray.length}) / 4`);if(s.bucketInstanceId in this.collisionCircleArrays){const ce=this.collisionCircleArrays[s.bucketInstanceId];s.placementInvProjMatrix=ce.invProjMatrix,s.placementViewportMatrix=ce.viewportMatrix,s.collisionCircleArray=ce.circles,delete this.collisionCircleArrays[s.bucketInstanceId]}}symbolFadeChange(s){return this.fadeDuration===0?1:(s-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(s){return Math.max(0,(this.transform.zoom-s)/1.5)}hasTransitions(s){return this.stale||s-this.lastPlacementChangeTimes}setStale(){this.stale=!0}}function Ci(y,s,f,d,g){y.emplaceBack(s?1:0,f?1:0,d||0,g||0),y.emplaceBack(s?1:0,f?1:0,d||0,g||0),y.emplaceBack(s?1:0,f?1:0,d||0,g||0),y.emplaceBack(s?1:0,f?1:0,d||0,g||0)}const Ks=Math.pow(2,25),Cm=Math.pow(2,24),Iy=Math.pow(2,17),Wn=Math.pow(2,16),dp=Math.pow(2,9),mp=Math.pow(2,8),Bo=Math.pow(2,1);function wo(y){if(y.opacity===0&&!y.placed)return 0;if(y.opacity===1&&y.placed)return 4294967295;const s=y.placed?1:0,f=Math.floor(127*y.opacity);return f*Ks+s*Cm+f*Iy+s*Wn+f*dp+s*mp+f*Bo+s}const mc=0;class us{constructor(s){this._sortAcrossTiles=s.layout.get("symbol-z-order")!=="viewport-y"&&!s.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(s,f,d,g,v){const C=this._bucketParts;for(;this._currentTileIndexL.sortKey-M.sortKey));this._currentPartIndex!this._forceFullPlacement&&E.now()-g>2;for(;this._currentPlacementIndex>=0;){const C=f[s[this._currentPlacementIndex]],L=this.placement.collisionIndex.transform.zoom;if(C.type==="symbol"&&(!C.minzoom||C.minzoom<=L)&&(!C.maxzoom||C.maxzoom>L)){if(this._inProgressLayer||(this._inProgressLayer=new us(C)),this._inProgressLayer.continuePlacement(d[C.source],this.placement,this._showCollisionBoxes,C,v))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(s){return this.placement.commit(s),this.placement}}const _u=512/l.W/2;class dh{constructor(s,f,d){this.tileID=s,this.bucketInstanceId=d,this._symbolsByKey={};const g=new Map;for(let v=0;v({x:Math.floor(M.anchorX*_u),y:Math.floor(M.anchorY*_u)})),crossTileIDs:C.map(M=>M.crossTileID)};if(L.positions.length>128){const M=new l.au(L.positions.length,16,Uint16Array);for(const{x:R,y:V}of L.positions)M.add(R,V);M.finish(),delete L.positions,L.index=M}this._symbolsByKey[v]=L}}getScaledCoordinates(s,f){const{x:d,y:g,z:v}=this.tileID.canonical,{x:C,y:L,z:M}=f.canonical,R=_u/Math.pow(2,M-v),V=(L*l.W+s.anchorY)*R,U=g*l.W*_u;return{x:Math.floor((C*l.W+s.anchorX)*R-d*l.W*_u),y:Math.floor(V-U)}}findMatches(s,f,d){const g=this.tileID.canonical.zs)}}class ii{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class gc{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(s){const f=Math.round((s-this.lng)/360);if(f!==0)for(const d in this.indexes){const g=this.indexes[d],v={};for(const C in g){const L=g[C];L.tileID=L.tileID.unwrapTo(L.tileID.wrap+f),v[L.tileID.key]=L}this.indexes[d]=v}this.lng=s}addBucket(s,f,d){if(this.indexes[s.overscaledZ]&&this.indexes[s.overscaledZ][s.key]){if(this.indexes[s.overscaledZ][s.key].bucketInstanceId===f.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(s.overscaledZ,this.indexes[s.overscaledZ][s.key])}for(let v=0;vs.overscaledZ)for(const L in C){const M=C[L];M.tileID.isChildOf(s)&&M.findMatches(f.symbolInstances,s,g)}else{const L=C[s.scaledTo(Number(v)).key];L&&L.findMatches(f.symbolInstances,s,g)}}for(let v=0;v{f[d]=!0});for(const d in this.layerIndexes)f[d]||delete this.layerIndexes[d]}}const Er=(y,s)=>l.t(y,s&&s.filter(f=>f.identifier!=="source.canvas")),mh=l.av();class Vo extends l.E{constructor(s,f={}){super(),this._rtlPluginLoaded=()=>{for(const d in this.sourceCaches){const g=this.sourceCaches[d].getSource().type;g!=="vector"&&g!=="geojson"||this.sourceCaches[d].reload()}},this.map=s,this.dispatcher=new sr(or(),s._getMapId()),this.dispatcher.registerMessageHandler("GG",(d,g)=>this.getGlyphs(d,g)),this.dispatcher.registerMessageHandler("GI",(d,g)=>this.getImages(d,g)),this.imageManager=new Qe,this.imageManager.setEventedParent(this),this.glyphManager=new it(s._requestManager,f.localIdeographFontFamily),this.lineAtlas=new zt(256,512),this.crossTileSymbolIndex=new nl,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new l.aw,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("SR",l.ax()),st().on(Oi,this._rtlPluginLoaded),this.on("data",d=>{if(d.dataType!=="source"||d.sourceDataType!=="metadata")return;const g=this.sourceCaches[d.sourceId];if(!g)return;const v=g.getSource();if(v&&v.vectorLayerIds)for(const C in this._layers){const L=this._layers[C];L.source===v.id&&this._validateLayer(L)}})}loadURL(s,f={},d){this.fire(new l.k("dataloading",{dataType:"style"})),f.validate=typeof f.validate!="boolean"||f.validate;const g=this.map._requestManager.transformRequest(s,"Style");this._loadStyleRequest=new AbortController,l.h(g,this._loadStyleRequest).then(v=>{this._loadStyleRequest=null,this._load(v.data,f,d)}).catch(v=>{this._loadStyleRequest=null,v&&this.fire(new l.j(v))})}loadJSON(s,f={},d){this.fire(new l.k("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,E.frameAsync(this._frameRequest).then(()=>{this._frameRequest=null,f.validate=f.validate!==!1,this._load(s,f,d)}).catch(()=>{})}loadEmpty(){this.fire(new l.k("dataloading",{dataType:"style"})),this._load(mh,{validate:!1})}_load(s,f,d){var g;const v=f.transformStyle?f.transformStyle(d,s):s;if(!f.validate||!Er(this,l.x(v))){this._loaded=!0,this.stylesheet=v;for(const C in v.sources)this.addSource(C,v.sources[C],{validate:!1});v.sprite?this._loadSprite(v.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(v.glyphs),this._createLayers(),this.light=new Tt(this.stylesheet.light),this.map.setTerrain((g=this.stylesheet.terrain)!==null&&g!==void 0?g:null),this.fire(new l.k("data",{dataType:"style"})),this.fire(new l.k("style.load"))}}_createLayers(){const s=l.ay(this.stylesheet.layers);this.dispatcher.broadcast("SL",s),this._order=s.map(f=>f.id),this._layers={},this._serializedLayers=null;for(const f of s){const d=l.az(f);d.setEventedParent(this,{layer:{id:f.id}}),this._layers[f.id]=d}}_loadSprite(s,f=!1,d=void 0){let g;this.imageManager.setLoaded(!1),this._spriteRequest=new AbortController,function(v,C,L,M){return l._(this,void 0,void 0,function*(){const R=Ae(v),V=L>1?"@2x":"",U={},X={};for(const{id:oe,url:ie}of R){const ce=C.transformRequest(C.normalizeSpriteURL(ie,V,".json"),"SpriteJSON");U[oe]=l.h(ce,M);const ee=C.transformRequest(C.normalizeSpriteURL(ie,V,".png"),"SpriteImage");X[oe]=j.getImage(ee,M)}return yield Promise.all([...Object.values(U),...Object.values(X)]),function(oe,ie){return l._(this,void 0,void 0,function*(){const ce={};for(const ee in oe){ce[ee]={};const Se=E.getImageCanvasContext((yield ie[ee]).data),ze=(yield oe[ee]).data;for(const fe in ze){const{width:Me,height:Fe,x:Ue,y:Xe,sdf:nt,pixelRatio:tt,stretchX:ut,stretchY:pt,content:cn}=ze[fe];ce[ee][fe]={data:null,pixelRatio:tt,sdf:nt,stretchX:ut,stretchY:pt,content:cn,spriteData:{width:Me,height:Fe,x:Ue,y:Xe,context:Se}}}}return ce})}(U,X)})}(s,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then(v=>{if(this._spriteRequest=null,v)for(const C in v){this._spritesImagesIds[C]=[];const L=this._spritesImagesIds[C]?this._spritesImagesIds[C].filter(M=>!(M in v)):[];for(const M of L)this.imageManager.removeImage(M),this._changedImages[M]=!0;for(const M in v[C]){const R=C==="default"?M:`${C}:${M}`;this._spritesImagesIds[C].push(R),R in this.imageManager.images?this.imageManager.updateImage(R,v[C][M],!1):this.imageManager.addImage(R,v[C][M]),f&&(this._changedImages[R]=!0)}}}).catch(v=>{this._spriteRequest=null,g=v,this.fire(new l.j(g))}).finally(()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),f&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new l.k("data",{dataType:"style"})),d&&d(g)})}_unloadSprite(){for(const s of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(s),this._changedImages[s]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new l.k("data",{dataType:"style"}))}_validateLayer(s){const f=this.sourceCaches[s.source];if(!f)return;const d=s.sourceLayer;if(!d)return;const g=f.getSource();(g.type==="geojson"||g.vectorLayerIds&&g.vectorLayerIds.indexOf(d)===-1)&&this.fire(new l.j(new Error(`Source layer "${d}" does not exist on source "${g.id}" as specified by style layer "${s.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const s in this.sourceCaches)if(!this.sourceCaches[s].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(s){const f=this._serializedAllLayers();if(!s||s.length===0)return Object.values(f);const d=[];for(const g of s)f[g]&&d.push(f[g]);return d}_serializedAllLayers(){let s=this._serializedLayers;if(s)return s;s=this._serializedLayers={};const f=Object.keys(this._layers);for(const d of f){const g=this._layers[d];g.type!=="custom"&&(s[d]=g.serialize())}return s}hasTransitions(){if(this.light&&this.light.hasTransition())return!0;for(const s in this.sourceCaches)if(this.sourceCaches[s].hasTransition())return!0;for(const s in this._layers)if(this._layers[s].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(s){if(!this._loaded)return;const f=this._changed;if(f){const g=Object.keys(this._updatedLayers),v=Object.keys(this._removedLayers);(g.length||v.length)&&this._updateWorkerLayers(g,v);for(const C in this._updatedSources){const L=this._updatedSources[C];if(L==="reload")this._reloadSource(C);else{if(L!=="clear")throw new Error(`Invalid action ${L}`);this._clearSource(C)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const C in this._updatedPaintProps)this._layers[C].updateTransitions(s);this.light.updateTransitions(s),this._resetUpdates()}const d={};for(const g in this.sourceCaches){const v=this.sourceCaches[g];d[g]=v.used,v.used=!1}for(const g of this._order){const v=this._layers[g];v.recalculate(s,this._availableImages),!v.isHidden(s.zoom)&&v.source&&(this.sourceCaches[v.source].used=!0)}for(const g in d){const v=this.sourceCaches[g];!!d[g]!=!!v.used&&v.fire(new l.k("data",{sourceDataType:"visibility",dataType:"source",sourceId:g}))}this.light.recalculate(s),this.z=s.zoom,f&&this.fire(new l.k("data",{dataType:"style"}))}_updateTilesForChangedImages(){const s=Object.keys(this._changedImages);if(s.length){for(const f in this.sourceCaches)this.sourceCaches[f].reloadTilesForDependencies(["icons","patterns"],s);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const s in this.sourceCaches)this.sourceCaches[s].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(s,f){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(s),removedIds:f})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(s,f={}){var d;this._checkLoaded();const g=this.serialize();if(s=f.transformStyle?f.transformStyle(g,s):s,((d=f.validate)===null||d===void 0||d)&&Er(this,l.x(s)))return!1;(s=l.aA(s)).layers=l.ay(s.layers);const v=l.aB(g,s),C=this._getOperationsToPerform(v);if(C.unimplemented.length>0)throw new Error(`Unimplemented: ${C.unimplemented.join(", ")}.`);if(C.operations.length===0)return!1;for(const L of C.operations)L();return this.stylesheet=s,this._serializedLayers=null,!0}_getOperationsToPerform(s){const f=[],d=[];for(const g of s)switch(g.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":continue;case"addLayer":f.push(()=>this.addLayer.apply(this,g.args));break;case"removeLayer":f.push(()=>this.removeLayer.apply(this,g.args));break;case"setPaintProperty":f.push(()=>this.setPaintProperty.apply(this,g.args));break;case"setLayoutProperty":f.push(()=>this.setLayoutProperty.apply(this,g.args));break;case"setFilter":f.push(()=>this.setFilter.apply(this,g.args));break;case"addSource":f.push(()=>this.addSource.apply(this,g.args));break;case"removeSource":f.push(()=>this.removeSource.apply(this,g.args));break;case"setLayerZoomRange":f.push(()=>this.setLayerZoomRange.apply(this,g.args));break;case"setLight":f.push(()=>this.setLight.apply(this,g.args));break;case"setGeoJSONSourceData":f.push(()=>this.setGeoJSONSourceData.apply(this,g.args));break;case"setGlyphs":f.push(()=>this.setGlyphs.apply(this,g.args));break;case"setSprite":f.push(()=>this.setSprite.apply(this,g.args));break;case"setTerrain":f.push(()=>this.map.setTerrain.apply(this,g.args));break;case"setTransition":f.push(()=>{});break;default:d.push(g.command)}return{operations:f,unimplemented:d}}addImage(s,f){if(this.getImage(s))return this.fire(new l.j(new Error(`An image named "${s}" already exists.`)));this.imageManager.addImage(s,f),this._afterImageUpdated(s)}updateImage(s,f){this.imageManager.updateImage(s,f)}getImage(s){return this.imageManager.getImage(s)}removeImage(s){if(!this.getImage(s))return this.fire(new l.j(new Error(`An image named "${s}" does not exist.`)));this.imageManager.removeImage(s),this._afterImageUpdated(s)}_afterImageUpdated(s){this._availableImages=this.imageManager.listImages(),this._changedImages[s]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new l.k("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(s,f,d={}){if(this._checkLoaded(),this.sourceCaches[s]!==void 0)throw new Error(`Source "${s}" already exists.`);if(!f.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(f).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(f.type)>=0&&this._validate(l.x.source,`sources.${s}`,f,null,d))return;this.map&&this.map._collectResourceTiming&&(f.collectResourceTiming=!0);const g=this.sourceCaches[s]=new ni(s,f,this.dispatcher);g.style=this,g.setEventedParent(this,()=>({isSourceLoaded:g.loaded(),source:g.serialize(),sourceId:s})),g.onAdd(this.map),this._changed=!0}removeSource(s){if(this._checkLoaded(),this.sourceCaches[s]===void 0)throw new Error("There is no source with this ID");for(const d in this._layers)if(this._layers[d].source===s)return this.fire(new l.j(new Error(`Source "${s}" cannot be removed while layer "${d}" is using it.`)));const f=this.sourceCaches[s];delete this.sourceCaches[s],delete this._updatedSources[s],f.fire(new l.k("data",{sourceDataType:"metadata",dataType:"source",sourceId:s})),f.setEventedParent(null),f.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(s,f){if(this._checkLoaded(),this.sourceCaches[s]===void 0)throw new Error(`There is no source with this ID=${s}`);const d=this.sourceCaches[s].getSource();if(d.type!=="geojson")throw new Error(`geojsonSource.type is ${d.type}, which is !== 'geojson`);d.setData(f),this._changed=!0}getSource(s){return this.sourceCaches[s]&&this.sourceCaches[s].getSource()}addLayer(s,f,d={}){this._checkLoaded();const g=s.id;if(this.getLayer(g))return void this.fire(new l.j(new Error(`Layer "${g}" already exists on this map.`)));let v;if(s.type==="custom"){if(Er(this,l.aC(s)))return;v=l.az(s)}else{if("source"in s&&typeof s.source=="object"&&(this.addSource(g,s.source),s=l.aA(s),s=l.e(s,{source:g})),this._validate(l.x.layer,`layers.${g}`,s,{arrayIndex:-1},d))return;v=l.az(s),this._validateLayer(v),v.setEventedParent(this,{layer:{id:g}})}const C=f?this._order.indexOf(f):this._order.length;if(f&&C===-1)this.fire(new l.j(new Error(`Cannot add layer "${g}" before non-existing layer "${f}".`)));else{if(this._order.splice(C,0,g),this._layerOrderChanged=!0,this._layers[g]=v,this._removedLayers[g]&&v.source&&v.type!=="custom"){const L=this._removedLayers[g];delete this._removedLayers[g],L.type!==v.type?this._updatedSources[v.source]="clear":(this._updatedSources[v.source]="reload",this.sourceCaches[v.source].pause())}this._updateLayer(v),v.onAdd&&v.onAdd(this.map)}}moveLayer(s,f){if(this._checkLoaded(),this._changed=!0,!this._layers[s])return void this.fire(new l.j(new Error(`The layer '${s}' does not exist in the map's style and cannot be moved.`)));if(s===f)return;const d=this._order.indexOf(s);this._order.splice(d,1);const g=f?this._order.indexOf(f):this._order.length;f&&g===-1?this.fire(new l.j(new Error(`Cannot move layer "${s}" before non-existing layer "${f}".`))):(this._order.splice(g,0,s),this._layerOrderChanged=!0)}removeLayer(s){this._checkLoaded();const f=this._layers[s];if(!f)return void this.fire(new l.j(new Error(`Cannot remove non-existing layer "${s}".`)));f.setEventedParent(null);const d=this._order.indexOf(s);this._order.splice(d,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[s]=f,delete this._layers[s],this._serializedLayers&&delete this._serializedLayers[s],delete this._updatedLayers[s],delete this._updatedPaintProps[s],f.onRemove&&f.onRemove(this.map)}getLayer(s){return this._layers[s]}getLayersOrder(){return[...this._order]}hasLayer(s){return s in this._layers}setLayerZoomRange(s,f,d){this._checkLoaded();const g=this.getLayer(s);g?g.minzoom===f&&g.maxzoom===d||(f!=null&&(g.minzoom=f),d!=null&&(g.maxzoom=d),this._updateLayer(g)):this.fire(new l.j(new Error(`Cannot set the zoom range of non-existing layer "${s}".`)))}setFilter(s,f,d={}){this._checkLoaded();const g=this.getLayer(s);if(g){if(!l.aD(g.filter,f))return f==null?(g.filter=void 0,void this._updateLayer(g)):void(this._validate(l.x.filter,`layers.${g.id}.filter`,f,null,d)||(g.filter=l.aA(f),this._updateLayer(g)))}else this.fire(new l.j(new Error(`Cannot filter non-existing layer "${s}".`)))}getFilter(s){return l.aA(this.getLayer(s).filter)}setLayoutProperty(s,f,d,g={}){this._checkLoaded();const v=this.getLayer(s);v?l.aD(v.getLayoutProperty(f),d)||(v.setLayoutProperty(f,d,g),this._updateLayer(v)):this.fire(new l.j(new Error(`Cannot style non-existing layer "${s}".`)))}getLayoutProperty(s,f){const d=this.getLayer(s);if(d)return d.getLayoutProperty(f);this.fire(new l.j(new Error(`Cannot get style of non-existing layer "${s}".`)))}setPaintProperty(s,f,d,g={}){this._checkLoaded();const v=this.getLayer(s);v?l.aD(v.getPaintProperty(f),d)||(v.setPaintProperty(f,d,g)&&this._updateLayer(v),this._changed=!0,this._updatedPaintProps[s]=!0,this._serializedLayers=null):this.fire(new l.j(new Error(`Cannot style non-existing layer "${s}".`)))}getPaintProperty(s,f){return this.getLayer(s).getPaintProperty(f)}setFeatureState(s,f){this._checkLoaded();const d=s.source,g=s.sourceLayer,v=this.sourceCaches[d];if(v===void 0)return void this.fire(new l.j(new Error(`The source '${d}' does not exist in the map's style.`)));const C=v.getSource().type;C==="geojson"&&g?this.fire(new l.j(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):C!=="vector"||g?(s.id===void 0&&this.fire(new l.j(new Error("The feature id parameter must be provided."))),v.setFeatureState(g,s.id,f)):this.fire(new l.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(s,f){this._checkLoaded();const d=s.source,g=this.sourceCaches[d];if(g===void 0)return void this.fire(new l.j(new Error(`The source '${d}' does not exist in the map's style.`)));const v=g.getSource().type,C=v==="vector"?s.sourceLayer:void 0;v!=="vector"||C?f&&typeof s.id!="string"&&typeof s.id!="number"?this.fire(new l.j(new Error("A feature id is required to remove its specific state property."))):g.removeFeatureState(C,s.id,f):this.fire(new l.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(s){this._checkLoaded();const f=s.source,d=s.sourceLayer,g=this.sourceCaches[f];if(g!==void 0)return g.getSource().type!=="vector"||d?(s.id===void 0&&this.fire(new l.j(new Error("The feature id parameter must be provided."))),g.getFeatureState(d,s.id)):void this.fire(new l.j(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new l.j(new Error(`The source '${f}' does not exist in the map's style.`)))}getTransition(){return l.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const s=l.aE(this.sourceCaches,v=>v.serialize()),f=this._serializeByIds(this._order),d=this.map.getTerrain()||void 0,g=this.stylesheet;return l.aF({version:g.version,name:g.name,metadata:g.metadata,light:g.light,center:g.center,zoom:g.zoom,bearing:g.bearing,pitch:g.pitch,sprite:g.sprite,glyphs:g.glyphs,transition:g.transition,sources:s,layers:f,terrain:d},v=>v!==void 0)}_updateLayer(s){this._updatedLayers[s.id]=!0,s.source&&!this._updatedSources[s.source]&&this.sourceCaches[s.source].getSource().type!=="raster"&&(this._updatedSources[s.source]="reload",this.sourceCaches[s.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(s){const f=C=>this._layers[C].type==="fill-extrusion",d={},g=[];for(let C=this._order.length-1;C>=0;C--){const L=this._order[C];if(f(L)){d[L]=C;for(const M of s){const R=M[L];if(R)for(const V of R)g.push(V)}}}g.sort((C,L)=>L.intersectionZ-C.intersectionZ);const v=[];for(let C=this._order.length-1;C>=0;C--){const L=this._order[C];if(f(L))for(let M=g.length-1;M>=0;M--){const R=g[M].feature;if(d[R.layer.id]{const nt=Se.featureSortOrder;if(nt){const tt=nt.indexOf(Ue.featureIndex);return nt.indexOf(Xe.featureIndex)-tt}return Xe.featureIndex-Ue.featureIndex});for(const Ue of Fe)Me.push(Ue)}}for(const Se in ie)ie[Se].forEach(ze=>{const fe=ze.feature,Me=R[L[Se].source].getFeatureState(fe.layer["source-layer"],fe.id);fe.source=fe.layer.source,fe.layer["source-layer"]&&(fe.sourceLayer=fe.layer["source-layer"]),fe.state=Me});return ie}(this._layers,C,this.sourceCaches,s,f,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(v)}querySourceFeatures(s,f){f&&f.filter&&this._validate(l.x.filter,"querySourceFeatures.filter",f.filter,null,f);const d=this.sourceCaches[s];return d?function(g,v){const C=g.getRenderableIds().map(R=>g.getTileByID(R)),L=[],M={};for(let R=0;RX.getTileByID(oe)).sort((oe,ie)=>ie.tileID.overscaledZ-oe.tileID.overscaledZ||(oe.tileID.isLessThan(ie.tileID)?-1:1))}const U=this.crossTileSymbolIndex.addLayer(V,M[V.source],s.center.lng);C=C||U}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((v=v||this._layerOrderChanged||d===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(E.now(),s.zoom))&&(this.pauseablePlacement=new cs(s,this.map.terrain,this._order,v,f,d,g,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,M),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(E.now()),L=!0),C&&this.pauseablePlacement.placement.setStale()),L||C)for(const R of this._order){const V=this._layers[R];V.type==="symbol"&&this.placement.updateLayerOpacities(V,M[V.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(E.now())}_releaseSymbolFadeTiles(){for(const s in this.sourceCaches)this.sourceCaches[s].releaseSymbolFadeTiles()}getImages(s,f){return l._(this,void 0,void 0,function*(){const d=yield this.imageManager.getImages(f.icons);this._updateTilesForChangedImages();const g=this.sourceCaches[f.source];return g&&g.setDependencies(f.tileID.key,f.type,f.icons),d})}getGlyphs(s,f){return l._(this,void 0,void 0,function*(){const d=yield this.glyphManager.getGlyphs(f.stacks),g=this.sourceCaches[f.source];return g&&g.setDependencies(f.tileID.key,f.type,[""]),d})}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(s,f={}){this._checkLoaded(),s&&this._validate(l.x.glyphs,"glyphs",s,null,f)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=s,this.glyphManager.entries={},this.glyphManager.setURL(s))}addSprite(s,f,d={},g){this._checkLoaded();const v=[{id:s,url:f}],C=[...Ae(this.stylesheet.sprite),...v];this._validate(l.x.sprite,"sprite",C,null,d)||(this.stylesheet.sprite=C,this._loadSprite(v,!0,g))}removeSprite(s){this._checkLoaded();const f=Ae(this.stylesheet.sprite);if(f.find(d=>d.id===s)){if(this._spritesImagesIds[s])for(const d of this._spritesImagesIds[s])this.imageManager.removeImage(d),this._changedImages[d]=!0;f.splice(f.findIndex(d=>d.id===s),1),this.stylesheet.sprite=f.length>0?f:void 0,delete this._spritesImagesIds[s],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new l.k("data",{dataType:"style"}))}else this.fire(new l.j(new Error(`Sprite "${s}" doesn't exists on this map.`)))}getSprite(){return Ae(this.stylesheet.sprite)}setSprite(s,f={},d){this._checkLoaded(),s&&this._validate(l.x.sprite,"sprite",s,null,f)||(this.stylesheet.sprite=s,s?this._loadSprite(s,!0,d):(this._unloadSprite(),d&&d(null)))}}var gh=l.X([{name:"a_pos",type:"Int16",components:2}]),Js="attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}";const _c={prelude:Zn(`#ifdef GL_ES +precision mediump float; +#else +#if !defined(lowp) +#define lowp +#endif +#if !defined(mediump) +#define mediump +#endif +#if !defined(highp) +#define highp +#endif +#endif +`,`#ifdef GL_ES +precision highp float; +#else +#if !defined(lowp) +#define lowp +#endif +#if !defined(mediump) +#define mediump +#endif +#if !defined(highp) +#define highp +#endif +#endif +vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0 +);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;} +#ifdef TERRAIN3D +uniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth; +#endif +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) { +#ifdef TERRAIN3D +highp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0)); +#else +return 1.0; +#endif +}float calculate_visibility(vec4 pos) { +#ifdef TERRAIN3D +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; +#else +return 1.0; +#endif +}float ele(vec2 pos) { +#ifdef TERRAIN3D +vec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a; +#else +return 0.0; +#endif +}float get_elevation(vec2 pos) { +#ifdef TERRAIN3D +vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration; +#else +return 0.0; +#endif +}`),background:Zn(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),backgroundPattern:Zn(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),circle:Zn(`varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define mediump float radius +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define highp vec4 stroke_color +#pragma mapbox: define mediump float stroke_width +#pragma mapbox: define lowp float stroke_opacity +void main(void) { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize mediump float radius +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize highp vec4 stroke_color +#pragma mapbox: initialize mediump float stroke_width +#pragma mapbox: initialize lowp float stroke_opacity +vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);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;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:Zn("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:Zn(`uniform highp float u_intensity;varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#define GAUSS_COEF 0.3989422804014327 +void main() { +#pragma mapbox: initialize highp float weight +float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude; +#pragma mapbox: define highp float weight +#pragma mapbox: define mediump float radius +const highp float ZERO=1.0/255.0/16.0; +#define GAUSS_COEF 0.3989422804014327 +void main(void) { +#pragma mapbox: initialize highp float weight +#pragma mapbox: initialize mediump float radius +vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}`),heatmapTexture:Zn(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(0.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),collisionBox:Zn("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:Zn("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:Zn("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}"),fill:Zn(`#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_FragColor=color*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);}`),fillOutline:Zn(`varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; +#pragma mapbox: define highp vec4 outline_color +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 outline_color +#pragma mapbox: initialize lowp float opacity +gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillOutlinePattern:Zn(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillPattern:Zn(`#ifdef GL_ES +precision highp float; +#endif +uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b; +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:Zn(`varying vec4 v_color;void main() {gl_FragColor=v_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed; +#ifdef TERRAIN3D +attribute vec2 a_centroid; +#endif +varying vec4 v_color; +#pragma mapbox: define highp float base +#pragma mapbox: define highp float height +#pragma mapbox: define highp vec4 color +void main() { +#pragma mapbox: initialize highp float base +#pragma mapbox: initialize highp float height +#pragma mapbox: initialize highp vec4 color +vec3 normal=a_normal_ed.xyz; +#ifdef TERRAIN3D +float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0); +#else +float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0; +#endif +base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}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:Zn(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed; +#ifdef TERRAIN3D +attribute vec2 a_centroid; +#endif +varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; +#pragma mapbox: define lowp float base +#pragma mapbox: define lowp float height +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float base +#pragma mapbox: initialize lowp float height +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=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; +#ifdef TERRAIN3D +float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0); +#else +float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0; +#endif +base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 +? a_pos +: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}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:Zn(`#ifdef GL_ES +precision highp float; +#endif +uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:Zn(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent; +#define PI 3.141592653589793 +void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),line:Zn(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_width2=vec2(outset,inset);}`),lineGradient:Zn(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;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=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_width2=vec2(outset,inset);}`),linePattern:Zn(`#ifdef GL_ES +precision highp float; +#endif +uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +#pragma mapbox: define lowp vec4 pattern_from +#pragma mapbox: define lowp vec4 pattern_to +#pragma mapbox: define lowp float pixel_ratio_from +#pragma mapbox: define lowp float pixel_ratio_to +void main() { +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +#pragma mapbox: initialize mediump vec4 pattern_from +#pragma mapbox: initialize mediump vec4 pattern_to +#pragma mapbox: initialize lowp float pixel_ratio_from +#pragma mapbox: initialize lowp float pixel_ratio_to +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:Zn(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +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=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,` +#define scale 0.015873016 +#define LINE_DISTANCE_SCALE 2.0 +attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; +#pragma mapbox: define highp vec4 color +#pragma mapbox: define lowp float blur +#pragma mapbox: define lowp float opacity +#pragma mapbox: define mediump float gapwidth +#pragma mapbox: define lowp float offset +#pragma mapbox: define mediump float width +#pragma mapbox: define lowp float floorwidth +void main() { +#pragma mapbox: initialize highp vec4 color +#pragma mapbox: initialize lowp float blur +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize mediump float gapwidth +#pragma mapbox: initialize lowp float offset +#pragma mapbox: initialize mediump float width +#pragma mapbox: initialize lowp float floorwidth +float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; +#ifdef TERRAIN3D +v_gamma_scale=1.0; +#else +float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; +#endif +v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),raster:Zn(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),symbolIcon:Zn(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity; +#pragma mapbox: define lowp float opacity +void main() { +#pragma mapbox: initialize lowp float opacity +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);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;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);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=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`),symbolSDF:Zn(`#define SDF_PX 8.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);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;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);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=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),symbolTextAndIcon:Zn(`#define SDF_PX 8.0 +#define SDF 1.0 +#define ICON 0.0 +uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); +#ifdef OVERDRAW_INSPECTOR +gl_FragColor=vec4(1.0); +#endif +}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1; +#pragma mapbox: define highp vec4 fill_color +#pragma mapbox: define highp vec4 halo_color +#pragma mapbox: define lowp float opacity +#pragma mapbox: define lowp float halo_width +#pragma mapbox: define lowp float halo_blur +void main() { +#pragma mapbox: initialize highp vec4 fill_color +#pragma mapbox: initialize highp vec4 halo_color +#pragma mapbox: initialize lowp float opacity +#pragma mapbox: initialize lowp float halo_width +#pragma mapbox: initialize lowp float halo_blur +vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);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;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? +camera_to_anchor_distance/u_camera_to_center_distance : +u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);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=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`),terrain:Zn("uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}",Js),terrainDepth:Zn("varying 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() {gl_FragColor=pack(v_depth);}",Js),terrainCoords:Zn("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}",Js)};function Zn(y,s){const f=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,d=s.match(/attribute ([\w]+) ([\w]+)/g),g=y.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),v=s.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),C=v?v.concat(g):g,L={};return{fragmentSource:y=y.replace(f,(M,R,V,U,X)=>(L[X]=!0,R==="define"?` +#ifndef HAS_UNIFORM_u_${X} +varying ${V} ${U} ${X}; +#else +uniform ${V} ${U} u_${X}; +#endif +`:` +#ifdef HAS_UNIFORM_u_${X} + ${V} ${U} ${X} = u_${X}; +#endif +`)),vertexSource:s=s.replace(f,(M,R,V,U,X)=>{const oe=U==="float"?"vec2":"vec4",ie=X.match(/color/)?"color":oe;return L[X]?R==="define"?` +#ifndef HAS_UNIFORM_u_${X} +uniform lowp float u_${X}_t; +attribute ${V} ${oe} a_${X}; +varying ${V} ${U} ${X}; +#else +uniform ${V} ${U} u_${X}; +#endif +`:ie==="vec4"?` +#ifndef HAS_UNIFORM_u_${X} + ${X} = a_${X}; +#else + ${V} ${U} ${X} = u_${X}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${X} + ${X} = unpack_mix_${ie}(a_${X}, u_${X}_t); +#else + ${V} ${U} ${X} = u_${X}; +#endif +`:R==="define"?` +#ifndef HAS_UNIFORM_u_${X} +uniform lowp float u_${X}_t; +attribute ${V} ${oe} a_${X}; +#else +uniform ${V} ${U} u_${X}; +#endif +`:ie==="vec4"?` +#ifndef HAS_UNIFORM_u_${X} + ${V} ${U} ${X} = a_${X}; +#else + ${V} ${U} ${X} = u_${X}; +#endif +`:` +#ifndef HAS_UNIFORM_u_${X} + ${V} ${U} ${X} = unpack_mix_${ie}(a_${X}, u_${X}_t); +#else + ${V} ${U} ${X} = u_${X}; +#endif +`}),staticAttributes:d,staticUniforms:C}}class _h{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(s,f,d,g,v,C,L,M,R){this.context=s;let V=this.boundPaintVertexBuffers.length!==g.length;for(let U=0;!V&&U({u_depth:new l.aG(Ue,Xe.u_depth),u_terrain:new l.aG(Ue,Xe.u_terrain),u_terrain_dim:new l.aH(Ue,Xe.u_terrain_dim),u_terrain_matrix:new l.aI(Ue,Xe.u_terrain_matrix),u_terrain_unpack:new l.aJ(Ue,Xe.u_terrain_unpack),u_terrain_exaggeration:new l.aH(Ue,Xe.u_terrain_exaggeration)}))(s,Fe),this.binderUniforms=d?d.getUniforms(s,Fe):[]}draw(s,f,d,g,v,C,L,M,R,V,U,X,oe,ie,ce,ee,Se,ze){const fe=s.gl;if(this.failedToCreate)return;if(s.program.set(this.program),s.setDepthMode(d),s.setStencilMode(g),s.setColorMode(v),s.setCullFace(C),M){s.activeTexture.set(fe.TEXTURE2),fe.bindTexture(fe.TEXTURE_2D,M.depthTexture),s.activeTexture.set(fe.TEXTURE3),fe.bindTexture(fe.TEXTURE_2D,M.texture);for(const Fe in this.terrainUniforms)this.terrainUniforms[Fe].set(M[Fe])}for(const Fe in this.fixedUniforms)this.fixedUniforms[Fe].set(L[Fe]);ce&&ce.setUniforms(s,this.binderUniforms,oe,{zoom:ie});let Me=0;switch(f){case fe.LINES:Me=2;break;case fe.TRIANGLES:Me=3;break;case fe.LINE_STRIP:Me=1}for(const Fe of X.get()){const Ue=Fe.vaos||(Fe.vaos={});(Ue[R]||(Ue[R]=new _h)).bind(s,this,V,ce?ce.getPaintVertexBuffers():[],U,Fe.vertexOffset,ee,Se,ze),fe.drawElements(f,Fe.primitiveLength*Me,fe.UNSIGNED_SHORT,Fe.primitiveOffset*Me*2)}}}function yh(y,s,f){const d=1/rn(f,1,s.transform.tileZoom),g=Math.pow(2,f.tileID.overscaledZ),v=f.tileSize*Math.pow(2,s.transform.tileZoom)/g,C=v*(f.tileID.canonical.x+f.tileID.wrap*g),L=v*f.tileID.canonical.y;return{u_image:0,u_texsize:f.imageAtlasTexture.size,u_scale:[d,y.fromScale,y.toScale],u_fade:y.t,u_pixel_coord_upper:[C>>16,L>>16],u_pixel_coord_lower:[65535&C,65535&L]}}const yc=(y,s,f,d)=>{const g=s.style.light,v=g.properties.get("position"),C=[v.x,v.y,v.z],L=function(){var R=new l.A(9);return l.A!=Float32Array&&(R[1]=0,R[2]=0,R[3]=0,R[5]=0,R[6]=0,R[7]=0),R[0]=1,R[4]=1,R[8]=1,R}();g.properties.get("anchor")==="viewport"&&function(R,V){var U=Math.sin(V),X=Math.cos(V);R[0]=X,R[1]=U,R[2]=0,R[3]=-U,R[4]=X,R[5]=0,R[6]=0,R[7]=0,R[8]=1}(L,-s.transform.angle),function(R,V,U){var X=V[0],oe=V[1],ie=V[2];R[0]=X*U[0]+oe*U[3]+ie*U[6],R[1]=X*U[1]+oe*U[4]+ie*U[7],R[2]=X*U[2]+oe*U[5]+ie*U[8]}(C,C,L);const M=g.properties.get("color");return{u_matrix:y,u_lightpos:C,u_lightintensity:g.properties.get("intensity"),u_lightcolor:[M.r,M.g,M.b],u_vertical_gradient:+f,u_opacity:d}},Cy=(y,s,f,d,g,v,C)=>l.e(yc(y,s,f,d),yh(v,s,C),{u_height_factor:-Math.pow(2,g.overscaledZ)/C.tileSize/8}),Tm=y=>({u_matrix:y}),vh=(y,s,f,d)=>l.e(Tm(y),yh(f,s,d)),Ty=(y,s)=>({u_matrix:y,u_world:s}),Lm=(y,s,f,d,g)=>l.e(vh(y,s,f,d),{u_world:g}),Ly=(y,s,f,d)=>{const g=y.transform;let v,C;if(d.paint.get("circle-pitch-alignment")==="map"){const L=rn(f,1,g.zoom);v=!0,C=[L,L]}else v=!1,C=g.pixelsToGLUnits;return{u_camera_to_center_distance:g.cameraToCenterDistance,u_scale_with_map:+(d.paint.get("circle-pitch-scale")==="map"),u_matrix:y.translatePosMatrix(s.posMatrix,f,d.paint.get("circle-translate"),d.paint.get("circle-translate-anchor")),u_pitch_with_map:+v,u_device_pixel_ratio:y.pixelRatio,u_extrude_scale:C}},Pm=(y,s,f)=>{const d=rn(f,1,s.zoom),g=Math.pow(2,s.zoom-f.tileID.overscaledZ),v=f.tileID.overscaleFactor();return{u_matrix:y,u_camera_to_center_distance:s.cameraToCenterDistance,u_pixels_to_tile_units:d,u_extrude_scale:[s.pixelsToGLUnits[0]/(d*g),s.pixelsToGLUnits[1]/(d*g)],u_overscale_factor:v}},Mm=(y,s,f=1)=>({u_matrix:y,u_color:s,u_overlay:0,u_overlay_scale:f}),bh=y=>({u_matrix:y}),Am=(y,s,f,d)=>({u_matrix:y,u_extrude_scale:rn(s,1,f),u_intensity:d});function km(y,s){const f=Math.pow(2,s.canonical.z),d=s.canonical.y;return[new l.Y(0,d/f).toLngLat().lat,new l.Y(0,(d+1)/f).toLngLat().lat]}const xh=(y,s,f,d)=>{const g=y.transform;return{u_matrix:vc(y,s,f,d),u_ratio:1/rn(s,1,g.zoom),u_device_pixel_ratio:y.pixelRatio,u_units_to_pixels:[1/g.pixelsToGLUnits[0],1/g.pixelsToGLUnits[1]]}},Dm=(y,s,f,d,g)=>l.e(xh(y,s,f,g),{u_image:0,u_image_height:d}),Ol=(y,s,f,d,g)=>{const v=y.transform,C=Uo(s,v);return{u_matrix:vc(y,s,f,g),u_texsize:s.imageAtlasTexture.size,u_ratio:1/rn(s,1,v.zoom),u_device_pixel_ratio:y.pixelRatio,u_image:0,u_scale:[C,d.fromScale,d.toScale],u_fade:d.t,u_units_to_pixels:[1/v.pixelsToGLUnits[0],1/v.pixelsToGLUnits[1]]}},wh=(y,s,f,d,g,v)=>{const C=y.lineAtlas,L=Uo(s,y.transform),M=f.layout.get("line-cap")==="round",R=C.getDash(d.from,M),V=C.getDash(d.to,M),U=R.width*g.fromScale,X=V.width*g.toScale;return l.e(xh(y,s,f,v),{u_patternscale_a:[L/U,-R.height/2],u_patternscale_b:[L/X,-V.height/2],u_sdfgamma:C.width/(256*Math.min(U,X)*y.pixelRatio)/2,u_image:0,u_tex_y_a:R.y,u_tex_y_b:V.y,u_mix:g.t})};function Uo(y,s){return 1/rn(y,1,s.tileZoom)}function vc(y,s,f,d){return y.translatePosMatrix(d?d.posMatrix:s.tileID.posMatrix,s,f.paint.get("line-translate"),f.paint.get("line-translate-anchor"))}const Sh=(y,s,f,d,g)=>{return{u_matrix:y,u_tl_parent:s,u_scale_parent:f,u_buffer_scale:1,u_fade_t:d.mix,u_opacity:d.opacity*g.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:g.paint.get("raster-brightness-min"),u_brightness_high:g.paint.get("raster-brightness-max"),u_saturation_factor:(C=g.paint.get("raster-saturation"),C>0?1-1/(1.001-C):-C),u_contrast_factor:(v=g.paint.get("raster-contrast"),v>0?1/(1-v):1+v),u_spin_weights:bc(g.paint.get("raster-hue-rotate"))};var v,C};function bc(y){y*=Math.PI/180;const s=Math.sin(y),f=Math.cos(y);return[(2*f+1)/3,(-Math.sqrt(3)*s-f+1)/3,(Math.sqrt(3)*s-f+1)/3]}const xc=(y,s,f,d,g,v,C,L,M,R)=>{const V=g.transform;return{u_is_size_zoom_constant:+(y==="constant"||y==="source"),u_is_size_feature_constant:+(y==="constant"||y==="camera"),u_size_t:s?s.uSizeT:0,u_size:s?s.uSize:0,u_camera_to_center_distance:V.cameraToCenterDistance,u_pitch:V.pitch/360*2*Math.PI,u_rotate_symbol:+f,u_aspect_ratio:V.width/V.height,u_fade_change:g.options.fadeDuration?g.symbolFadeChange:1,u_matrix:v,u_label_plane_matrix:C,u_coord_matrix:L,u_is_text:+M,u_pitch_with_map:+d,u_texsize:R,u_texture:0}},wc=(y,s,f,d,g,v,C,L,M,R,V)=>{const U=g.transform;return l.e(xc(y,s,f,d,g,v,C,L,M,R),{u_gamma_scale:d?Math.cos(U._pitch)*U.cameraToCenterDistance:1,u_device_pixel_ratio:g.pixelRatio,u_is_halo:+V})},Sc=(y,s,f,d,g,v,C,L,M,R)=>l.e(wc(y,s,f,d,g,v,C,L,!0,M,!0),{u_texsize_icon:R,u_texture_icon:1}),Py=(y,s,f)=>({u_matrix:y,u_opacity:s,u_color:f}),My=(y,s,f,d,g,v)=>l.e(function(C,L,M,R){const V=M.imageManager.getPattern(C.from.toString()),U=M.imageManager.getPattern(C.to.toString()),{width:X,height:oe}=M.imageManager.getPixelSize(),ie=Math.pow(2,R.tileID.overscaledZ),ce=R.tileSize*Math.pow(2,M.transform.tileZoom)/ie,ee=ce*(R.tileID.canonical.x+R.tileID.wrap*ie),Se=ce*R.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:V.tl,u_pattern_br_a:V.br,u_pattern_tl_b:U.tl,u_pattern_br_b:U.br,u_texsize:[X,oe],u_mix:L.t,u_pattern_size_a:V.displaySize,u_pattern_size_b:U.displaySize,u_scale_a:L.fromScale,u_scale_b:L.toScale,u_tile_units_to_pixels:1/rn(R,1,M.transform.tileZoom),u_pixel_coord_upper:[ee>>16,Se>>16],u_pixel_coord_lower:[65535&ee,65535&Se]}}(d,v,f,g),{u_matrix:y,u_opacity:s}),Rm={fillExtrusion:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_lightpos:new l.aK(y,s.u_lightpos),u_lightintensity:new l.aH(y,s.u_lightintensity),u_lightcolor:new l.aK(y,s.u_lightcolor),u_vertical_gradient:new l.aH(y,s.u_vertical_gradient),u_opacity:new l.aH(y,s.u_opacity)}),fillExtrusionPattern:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_lightpos:new l.aK(y,s.u_lightpos),u_lightintensity:new l.aH(y,s.u_lightintensity),u_lightcolor:new l.aK(y,s.u_lightcolor),u_vertical_gradient:new l.aH(y,s.u_vertical_gradient),u_height_factor:new l.aH(y,s.u_height_factor),u_image:new l.aG(y,s.u_image),u_texsize:new l.aL(y,s.u_texsize),u_pixel_coord_upper:new l.aL(y,s.u_pixel_coord_upper),u_pixel_coord_lower:new l.aL(y,s.u_pixel_coord_lower),u_scale:new l.aK(y,s.u_scale),u_fade:new l.aH(y,s.u_fade),u_opacity:new l.aH(y,s.u_opacity)}),fill:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix)}),fillPattern:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_image:new l.aG(y,s.u_image),u_texsize:new l.aL(y,s.u_texsize),u_pixel_coord_upper:new l.aL(y,s.u_pixel_coord_upper),u_pixel_coord_lower:new l.aL(y,s.u_pixel_coord_lower),u_scale:new l.aK(y,s.u_scale),u_fade:new l.aH(y,s.u_fade)}),fillOutline:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_world:new l.aL(y,s.u_world)}),fillOutlinePattern:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_world:new l.aL(y,s.u_world),u_image:new l.aG(y,s.u_image),u_texsize:new l.aL(y,s.u_texsize),u_pixel_coord_upper:new l.aL(y,s.u_pixel_coord_upper),u_pixel_coord_lower:new l.aL(y,s.u_pixel_coord_lower),u_scale:new l.aK(y,s.u_scale),u_fade:new l.aH(y,s.u_fade)}),circle:(y,s)=>({u_camera_to_center_distance:new l.aH(y,s.u_camera_to_center_distance),u_scale_with_map:new l.aG(y,s.u_scale_with_map),u_pitch_with_map:new l.aG(y,s.u_pitch_with_map),u_extrude_scale:new l.aL(y,s.u_extrude_scale),u_device_pixel_ratio:new l.aH(y,s.u_device_pixel_ratio),u_matrix:new l.aI(y,s.u_matrix)}),collisionBox:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_camera_to_center_distance:new l.aH(y,s.u_camera_to_center_distance),u_pixels_to_tile_units:new l.aH(y,s.u_pixels_to_tile_units),u_extrude_scale:new l.aL(y,s.u_extrude_scale),u_overscale_factor:new l.aH(y,s.u_overscale_factor)}),collisionCircle:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_inv_matrix:new l.aI(y,s.u_inv_matrix),u_camera_to_center_distance:new l.aH(y,s.u_camera_to_center_distance),u_viewport_size:new l.aL(y,s.u_viewport_size)}),debug:(y,s)=>({u_color:new l.aM(y,s.u_color),u_matrix:new l.aI(y,s.u_matrix),u_overlay:new l.aG(y,s.u_overlay),u_overlay_scale:new l.aH(y,s.u_overlay_scale)}),clippingMask:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix)}),heatmap:(y,s)=>({u_extrude_scale:new l.aH(y,s.u_extrude_scale),u_intensity:new l.aH(y,s.u_intensity),u_matrix:new l.aI(y,s.u_matrix)}),heatmapTexture:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_world:new l.aL(y,s.u_world),u_image:new l.aG(y,s.u_image),u_color_ramp:new l.aG(y,s.u_color_ramp),u_opacity:new l.aH(y,s.u_opacity)}),hillshade:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_image:new l.aG(y,s.u_image),u_latrange:new l.aL(y,s.u_latrange),u_light:new l.aL(y,s.u_light),u_shadow:new l.aM(y,s.u_shadow),u_highlight:new l.aM(y,s.u_highlight),u_accent:new l.aM(y,s.u_accent)}),hillshadePrepare:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_image:new l.aG(y,s.u_image),u_dimension:new l.aL(y,s.u_dimension),u_zoom:new l.aH(y,s.u_zoom),u_unpack:new l.aJ(y,s.u_unpack)}),line:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_ratio:new l.aH(y,s.u_ratio),u_device_pixel_ratio:new l.aH(y,s.u_device_pixel_ratio),u_units_to_pixels:new l.aL(y,s.u_units_to_pixels)}),lineGradient:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_ratio:new l.aH(y,s.u_ratio),u_device_pixel_ratio:new l.aH(y,s.u_device_pixel_ratio),u_units_to_pixels:new l.aL(y,s.u_units_to_pixels),u_image:new l.aG(y,s.u_image),u_image_height:new l.aH(y,s.u_image_height)}),linePattern:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_texsize:new l.aL(y,s.u_texsize),u_ratio:new l.aH(y,s.u_ratio),u_device_pixel_ratio:new l.aH(y,s.u_device_pixel_ratio),u_image:new l.aG(y,s.u_image),u_units_to_pixels:new l.aL(y,s.u_units_to_pixels),u_scale:new l.aK(y,s.u_scale),u_fade:new l.aH(y,s.u_fade)}),lineSDF:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_ratio:new l.aH(y,s.u_ratio),u_device_pixel_ratio:new l.aH(y,s.u_device_pixel_ratio),u_units_to_pixels:new l.aL(y,s.u_units_to_pixels),u_patternscale_a:new l.aL(y,s.u_patternscale_a),u_patternscale_b:new l.aL(y,s.u_patternscale_b),u_sdfgamma:new l.aH(y,s.u_sdfgamma),u_image:new l.aG(y,s.u_image),u_tex_y_a:new l.aH(y,s.u_tex_y_a),u_tex_y_b:new l.aH(y,s.u_tex_y_b),u_mix:new l.aH(y,s.u_mix)}),raster:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_tl_parent:new l.aL(y,s.u_tl_parent),u_scale_parent:new l.aH(y,s.u_scale_parent),u_buffer_scale:new l.aH(y,s.u_buffer_scale),u_fade_t:new l.aH(y,s.u_fade_t),u_opacity:new l.aH(y,s.u_opacity),u_image0:new l.aG(y,s.u_image0),u_image1:new l.aG(y,s.u_image1),u_brightness_low:new l.aH(y,s.u_brightness_low),u_brightness_high:new l.aH(y,s.u_brightness_high),u_saturation_factor:new l.aH(y,s.u_saturation_factor),u_contrast_factor:new l.aH(y,s.u_contrast_factor),u_spin_weights:new l.aK(y,s.u_spin_weights)}),symbolIcon:(y,s)=>({u_is_size_zoom_constant:new l.aG(y,s.u_is_size_zoom_constant),u_is_size_feature_constant:new l.aG(y,s.u_is_size_feature_constant),u_size_t:new l.aH(y,s.u_size_t),u_size:new l.aH(y,s.u_size),u_camera_to_center_distance:new l.aH(y,s.u_camera_to_center_distance),u_pitch:new l.aH(y,s.u_pitch),u_rotate_symbol:new l.aG(y,s.u_rotate_symbol),u_aspect_ratio:new l.aH(y,s.u_aspect_ratio),u_fade_change:new l.aH(y,s.u_fade_change),u_matrix:new l.aI(y,s.u_matrix),u_label_plane_matrix:new l.aI(y,s.u_label_plane_matrix),u_coord_matrix:new l.aI(y,s.u_coord_matrix),u_is_text:new l.aG(y,s.u_is_text),u_pitch_with_map:new l.aG(y,s.u_pitch_with_map),u_texsize:new l.aL(y,s.u_texsize),u_texture:new l.aG(y,s.u_texture)}),symbolSDF:(y,s)=>({u_is_size_zoom_constant:new l.aG(y,s.u_is_size_zoom_constant),u_is_size_feature_constant:new l.aG(y,s.u_is_size_feature_constant),u_size_t:new l.aH(y,s.u_size_t),u_size:new l.aH(y,s.u_size),u_camera_to_center_distance:new l.aH(y,s.u_camera_to_center_distance),u_pitch:new l.aH(y,s.u_pitch),u_rotate_symbol:new l.aG(y,s.u_rotate_symbol),u_aspect_ratio:new l.aH(y,s.u_aspect_ratio),u_fade_change:new l.aH(y,s.u_fade_change),u_matrix:new l.aI(y,s.u_matrix),u_label_plane_matrix:new l.aI(y,s.u_label_plane_matrix),u_coord_matrix:new l.aI(y,s.u_coord_matrix),u_is_text:new l.aG(y,s.u_is_text),u_pitch_with_map:new l.aG(y,s.u_pitch_with_map),u_texsize:new l.aL(y,s.u_texsize),u_texture:new l.aG(y,s.u_texture),u_gamma_scale:new l.aH(y,s.u_gamma_scale),u_device_pixel_ratio:new l.aH(y,s.u_device_pixel_ratio),u_is_halo:new l.aG(y,s.u_is_halo)}),symbolTextAndIcon:(y,s)=>({u_is_size_zoom_constant:new l.aG(y,s.u_is_size_zoom_constant),u_is_size_feature_constant:new l.aG(y,s.u_is_size_feature_constant),u_size_t:new l.aH(y,s.u_size_t),u_size:new l.aH(y,s.u_size),u_camera_to_center_distance:new l.aH(y,s.u_camera_to_center_distance),u_pitch:new l.aH(y,s.u_pitch),u_rotate_symbol:new l.aG(y,s.u_rotate_symbol),u_aspect_ratio:new l.aH(y,s.u_aspect_ratio),u_fade_change:new l.aH(y,s.u_fade_change),u_matrix:new l.aI(y,s.u_matrix),u_label_plane_matrix:new l.aI(y,s.u_label_plane_matrix),u_coord_matrix:new l.aI(y,s.u_coord_matrix),u_is_text:new l.aG(y,s.u_is_text),u_pitch_with_map:new l.aG(y,s.u_pitch_with_map),u_texsize:new l.aL(y,s.u_texsize),u_texsize_icon:new l.aL(y,s.u_texsize_icon),u_texture:new l.aG(y,s.u_texture),u_texture_icon:new l.aG(y,s.u_texture_icon),u_gamma_scale:new l.aH(y,s.u_gamma_scale),u_device_pixel_ratio:new l.aH(y,s.u_device_pixel_ratio),u_is_halo:new l.aG(y,s.u_is_halo)}),background:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_opacity:new l.aH(y,s.u_opacity),u_color:new l.aM(y,s.u_color)}),backgroundPattern:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_opacity:new l.aH(y,s.u_opacity),u_image:new l.aG(y,s.u_image),u_pattern_tl_a:new l.aL(y,s.u_pattern_tl_a),u_pattern_br_a:new l.aL(y,s.u_pattern_br_a),u_pattern_tl_b:new l.aL(y,s.u_pattern_tl_b),u_pattern_br_b:new l.aL(y,s.u_pattern_br_b),u_texsize:new l.aL(y,s.u_texsize),u_mix:new l.aH(y,s.u_mix),u_pattern_size_a:new l.aL(y,s.u_pattern_size_a),u_pattern_size_b:new l.aL(y,s.u_pattern_size_b),u_scale_a:new l.aH(y,s.u_scale_a),u_scale_b:new l.aH(y,s.u_scale_b),u_pixel_coord_upper:new l.aL(y,s.u_pixel_coord_upper),u_pixel_coord_lower:new l.aL(y,s.u_pixel_coord_lower),u_tile_units_to_pixels:new l.aH(y,s.u_tile_units_to_pixels)}),terrain:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_texture:new l.aG(y,s.u_texture),u_ele_delta:new l.aH(y,s.u_ele_delta)}),terrainDepth:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_ele_delta:new l.aH(y,s.u_ele_delta)}),terrainCoords:(y,s)=>({u_matrix:new l.aI(y,s.u_matrix),u_texture:new l.aG(y,s.u_texture),u_terrain_coords_id:new l.aH(y,s.u_terrain_coords_id),u_ele_delta:new l.aH(y,s.u_ele_delta)})};class Ay{constructor(s,f,d){this.context=s;const g=s.gl;this.buffer=g.createBuffer(),this.dynamicDraw=!!d,this.context.unbindVAO(),s.bindElementBuffer.set(this.buffer),g.bufferData(g.ELEMENT_ARRAY_BUFFER,f.arrayBuffer,this.dynamicDraw?g.DYNAMIC_DRAW:g.STATIC_DRAW),this.dynamicDraw||delete f.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(s){const f=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),f.bufferSubData(f.ELEMENT_ARRAY_BUFFER,0,s.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const zl={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class Eh{constructor(s,f,d,g){this.length=f.length,this.attributes=d,this.itemSize=f.bytesPerElement,this.dynamicDraw=g,this.context=s;const v=s.gl;this.buffer=v.createBuffer(),s.bindVertexBuffer.set(this.buffer),v.bufferData(v.ARRAY_BUFFER,f.arrayBuffer,this.dynamicDraw?v.DYNAMIC_DRAW:v.STATIC_DRAW),this.dynamicDraw||delete f.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(s){if(s.length!==this.length)throw new Error(`Length of new data is ${s.length}, which doesn't match current length of ${this.length}`);const f=this.context.gl;this.bind(),f.bufferSubData(f.ARRAY_BUFFER,0,s.arrayBuffer)}enableAttributes(s,f){for(let d=0;d0){const ut=l.F(),pt=Xe;l.aP(ut,Ue.placementInvProjMatrix,y.transform.glCoordMatrix),l.aP(ut,ut,Ue.placementViewportMatrix),V.push({circleArray:tt,circleOffset:X,transform:pt,invTransform:ut,coord:Me}),U+=tt.length/4,X=U}nt&&R.draw(L,M.LINES,Tn.disabled,fr.disabled,y.colorModeForRenderPass(),rr.disabled,Pm(Xe,y.transform,Fe),y.style.map.terrain&&y.style.map.terrain.getTerrainData(Me),f.id,nt.layoutVertexBuffer,nt.indexBuffer,nt.segments,null,y.transform.zoom,null,null,nt.collisionVertexBuffer)}if(!C||!V.length)return;const oe=y.useProgram("collisionCircle"),ie=new l.aQ;ie.resize(4*U),ie._trim();let ce=0;for(const fe of V)for(let Me=0;Me=0&&(ie[ee.associatedIconIndex]={shiftedAnchor:cn,angle:mt})}else Ye(ee.numGlyphs,X)}if(R){oe.clear();const ce=y.icon.placedSymbolArray;for(let ee=0;eey.style.map.terrain.getElevation(nt,fs,ai):null,Tr=f.layout.get("text-rotation-alignment")==="map";W(ut,nt.posMatrix,y,g,jo,na,ee,R,Tr,si)}const ul=y.translatePosMatrix(nt.posMatrix,tt,v,C),ra=Se||g&&Ue||zc?Cp:jo,oi=y.translatePosMatrix(na,tt,v,C,!0),Cr=mt&&f.paint.get(g?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let vr;vr=mt?ut.iconsInText?Sc(jt.kind,Qt,ze,ee,y,ul,ra,oi,yn,mi):wc(jt.kind,Qt,ze,ee,y,ul,ra,oi,g,yn,!0):xc(jt.kind,Qt,ze,ee,y,ul,ra,oi,g,yn);const hs={program:Ln,buffers:pt,uniformValues:vr,atlasTexture:Or,atlasTextureIcon:Ir,atlasInterpolation:Hn,atlasInterpolationIcon:Go,isSDF:mt,hasHalo:Cr};if(fe&&ut.canOverlap){Me=!0;const si=pt.segments.get();for(const Tr of si)Xe.push({segments:new l.$([Tr]),sortKey:Tr.sortKey,state:hs,terrainData:dn})}else Xe.push({segments:pt.segments,sortKey:0,state:hs,terrainData:dn})}Me&&Xe.sort((nt,tt)=>nt.sortKey-tt.sortKey);for(const nt of Xe){const tt=nt.state;if(X.activeTexture.set(oe.TEXTURE0),tt.atlasTexture.bind(tt.atlasInterpolation,oe.CLAMP_TO_EDGE),tt.atlasTextureIcon&&(X.activeTexture.set(oe.TEXTURE1),tt.atlasTextureIcon&&tt.atlasTextureIcon.bind(tt.atlasInterpolationIcon,oe.CLAMP_TO_EDGE)),tt.isSDF){const ut=tt.uniformValues;tt.hasHalo&&(ut.u_is_halo=1,jm(tt.buffers,nt.segments,f,y,tt.program,Fe,V,U,ut,nt.terrainData)),ut.u_is_halo=0}jm(tt.buffers,nt.segments,f,y,tt.program,Fe,V,U,tt.uniformValues,nt.terrainData)}}function jm(y,s,f,d,g,v,C,L,M,R){const V=d.context;g.draw(V,V.gl.TRIANGLES,v,C,L,rr.disabled,M,R,f.id,y.layoutVertexBuffer,y.indexBuffer,s,f.paint,d.transform.zoom,y.programConfigurations.get(f.id),y.dynamicLayoutVertexBuffer,y.opacityVertexBuffer)}function Nh(y,s,f,d,g){if(!f||!d||!d.imageAtlas)return;const v=d.imageAtlas.patternPositions;let C=v[f.to.toString()],L=v[f.from.toString()];if(!C&&L&&(C=L),!L&&C&&(L=C),!C||!L){const M=g.getPaintProperty(s);C=v[M],L=v[M]}C&&L&&y.setConstantPatternPositions(C,L)}function qm(y,s,f,d,g,v,C){const L=y.context.gl,M="fill-pattern",R=f.paint.get(M),V=R&&R.constantOr(1),U=f.getCrossfadeParameters();let X,oe,ie,ce,ee;C?(oe=V&&!f.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",X=L.LINES):(oe=V?"fillPattern":"fill",X=L.TRIANGLES);const Se=R.constantOr(null);for(const ze of d){const fe=s.getTile(ze);if(V&&!fe.patternsLoaded())continue;const Me=fe.getBucket(f);if(!Me)continue;const Fe=Me.programConfigurations.get(f.id),Ue=y.useProgram(oe,Fe),Xe=y.style.map.terrain&&y.style.map.terrain.getTerrainData(ze);V&&(y.context.activeTexture.set(L.TEXTURE0),fe.imageAtlasTexture.bind(L.LINEAR,L.CLAMP_TO_EDGE),Fe.updatePaintBuffers(U)),Nh(Fe,M,Se,fe,f);const nt=Xe?ze:null,tt=y.translatePosMatrix(nt?nt.posMatrix:ze.posMatrix,fe,f.paint.get("fill-translate"),f.paint.get("fill-translate-anchor"));if(C){ce=Me.indexBuffer2,ee=Me.segments2;const ut=[L.drawingBufferWidth,L.drawingBufferHeight];ie=oe==="fillOutlinePattern"&&V?Lm(tt,y,U,fe,ut):Ty(tt,ut)}else ce=Me.indexBuffer,ee=Me.segments,ie=V?vh(tt,y,U,fe):Tm(tt);Ue.draw(y.context,X,g,y.stencilModeForClipping(ze),v,rr.disabled,ie,Xe,f.id,Me.layoutVertexBuffer,ce,ee,f.paint,y.transform.zoom,Fe)}}function Oh(y,s,f,d,g,v,C){const L=y.context,M=L.gl,R="fill-extrusion-pattern",V=f.paint.get(R),U=V.constantOr(1),X=f.getCrossfadeParameters(),oe=f.paint.get("fill-extrusion-opacity"),ie=V.constantOr(null);for(const ce of d){const ee=s.getTile(ce),Se=ee.getBucket(f);if(!Se)continue;const ze=y.style.map.terrain&&y.style.map.terrain.getTerrainData(ce),fe=Se.programConfigurations.get(f.id),Me=y.useProgram(U?"fillExtrusionPattern":"fillExtrusion",fe);U&&(y.context.activeTexture.set(M.TEXTURE0),ee.imageAtlasTexture.bind(M.LINEAR,M.CLAMP_TO_EDGE),fe.updatePaintBuffers(X)),Nh(fe,R,ie,ee,f);const Fe=y.translatePosMatrix(ce.posMatrix,ee,f.paint.get("fill-extrusion-translate"),f.paint.get("fill-extrusion-translate-anchor")),Ue=f.paint.get("fill-extrusion-vertical-gradient"),Xe=U?Cy(Fe,y,Ue,oe,ce,X,ee):yc(Fe,y,Ue,oe);Me.draw(L,L.gl.TRIANGLES,g,v,C,rr.backCCW,Xe,ze,f.id,Se.layoutVertexBuffer,Se.indexBuffer,Se.segments,f.paint,y.transform.zoom,fe,y.style.map.terrain&&Se.centroidVertexBuffer)}}function zh(y,s,f,d,g,v,C){const L=y.context,M=L.gl,R=f.fbo;if(!R)return;const V=y.useProgram("hillshade"),U=y.style.map.terrain&&y.style.map.terrain.getTerrainData(s);L.activeTexture.set(M.TEXTURE0),M.bindTexture(M.TEXTURE_2D,R.colorAttachment.get()),V.draw(L,M.TRIANGLES,g,v,C,rr.disabled,((X,oe,ie,ce)=>{const ee=ie.paint.get("hillshade-shadow-color"),Se=ie.paint.get("hillshade-highlight-color"),ze=ie.paint.get("hillshade-accent-color");let fe=ie.paint.get("hillshade-illumination-direction")*(Math.PI/180);ie.paint.get("hillshade-illumination-anchor")==="viewport"&&(fe-=X.transform.angle);const Me=!X.options.moving;return{u_matrix:ce?ce.posMatrix:X.transform.calculatePosMatrix(oe.tileID.toUnwrapped(),Me),u_image:0,u_latrange:km(0,oe.tileID),u_light:[ie.paint.get("hillshade-exaggeration"),fe],u_shadow:ee,u_highlight:Se,u_accent:ze}})(y,f,d,U?s:null),U,d.id,y.rasterBoundsBuffer,y.quadTriangleIndexBuffer,y.rasterBoundsSegments)}function Tp(y,s,f,d,g,v){const C=y.context,L=C.gl,M=s.dem;if(M&&M.data){const R=M.dim,V=M.stride,U=M.getPixels();if(C.activeTexture.set(L.TEXTURE1),C.pixelStoreUnpackPremultiplyAlpha.set(!1),s.demTexture=s.demTexture||y.getTileTexture(V),s.demTexture){const oe=s.demTexture;oe.update(U,{premultiply:!1}),oe.bind(L.NEAREST,L.CLAMP_TO_EDGE)}else s.demTexture=new me(C,U,L.RGBA,{premultiply:!1}),s.demTexture.bind(L.NEAREST,L.CLAMP_TO_EDGE);C.activeTexture.set(L.TEXTURE0);let X=s.fbo;if(!X){const oe=new me(C,{width:R,height:R,data:null},L.RGBA);oe.bind(L.LINEAR,L.CLAMP_TO_EDGE),X=s.fbo=C.createFramebuffer(R,R,!0,!1),X.colorAttachment.set(oe.texture)}C.bindFramebuffer.set(X.framebuffer),C.viewport.set([0,0,R,R]),y.useProgram("hillshadePrepare").draw(C,L.TRIANGLES,d,g,v,rr.disabled,((oe,ie)=>{const ce=ie.stride,ee=l.F();return l.aN(ee,0,l.W,-l.W,0,0,1),l.H(ee,ee,[0,-l.W,0]),{u_matrix:ee,u_image:1,u_dimension:[ce,ce],u_zoom:oe.overscaledZ,u_unpack:ie.getUnpackVector()}})(s.tileID,M),null,f.id,y.rasterBoundsBuffer,y.quadTriangleIndexBuffer,y.rasterBoundsSegments),s.needsHillshadePrepare=!1}}function $m(y,s,f,d,g,v){const C=d.paint.get("raster-fade-duration");if(!v&&C>0){const L=E.now(),M=(L-y.timeAdded)/C,R=s?(L-s.timeAdded)/C:-1,V=f.getSource(),U=g.coveringZoomLevel({tileSize:V.tileSize,roundZoom:V.roundZoom}),X=!s||Math.abs(s.tileID.overscaledZ-U)>Math.abs(y.tileID.overscaledZ-U),oe=X&&y.refreshedUponExpiration?1:l.ac(X?M:1-R,0,1);return y.refreshedUponExpiration&&M>=1&&(y.refreshedUponExpiration=!1),s?{opacity:1,mix:1-oe}:{opacity:oe,mix:0}}return{opacity:1,mix:0}}const Wm=new l.aO(1,0,0,1),Fh=new l.aO(0,1,0,1),Lp=new l.aO(0,0,1,1),Vy=new l.aO(1,0,1,1),Zm=new l.aO(0,1,1,1);function Rr(y,s,f,d){uo(y,0,s+f/2,y.transform.width,f,d)}function il(y,s,f,d){uo(y,s-f/2,0,f,y.transform.height,d)}function uo(y,s,f,d,g,v){const C=y.context,L=C.gl;L.enable(L.SCISSOR_TEST),L.scissor(s*y.pixelRatio,f*y.pixelRatio,d*y.pixelRatio,g*y.pixelRatio),C.clear({color:v}),L.disable(L.SCISSOR_TEST)}function Pp(y,s,f){const d=y.context,g=d.gl,v=f.posMatrix,C=y.useProgram("debug"),L=Tn.disabled,M=fr.disabled,R=y.colorModeForRenderPass(),V="$debug",U=y.style.map.terrain&&y.style.map.terrain.getTerrainData(f);d.activeTexture.set(g.TEXTURE0);const X=s.getTileByID(f.key).latestRawTileData,oe=Math.floor((X&&X.byteLength||0)/1024),ie=s.getTile(f).tileSize,ce=512/Math.min(ie,512)*(f.overscaledZ/y.transform.zoom)*.5;let ee=f.canonical.toString();f.overscaledZ!==f.canonical.z&&(ee+=` => ${f.overscaledZ}`),function(Se,ze){Se.initDebugOverlayCanvas();const fe=Se.debugOverlayCanvas,Me=Se.context.gl,Fe=Se.debugOverlayCanvas.getContext("2d");Fe.clearRect(0,0,fe.width,fe.height),Fe.shadowColor="white",Fe.shadowBlur=2,Fe.lineWidth=1.5,Fe.strokeStyle="white",Fe.textBaseline="top",Fe.font="bold 36px Open Sans, sans-serif",Fe.fillText(ze,5,5),Fe.strokeText(ze,5,5),Se.debugOverlayTexture.update(fe),Se.debugOverlayTexture.bind(Me.LINEAR,Me.CLAMP_TO_EDGE)}(y,`${ee} ${oe}kB`),C.draw(d,g.TRIANGLES,L,M,Zr.alphaBlended,rr.disabled,Mm(v,l.aO.transparent,ce),null,V,y.debugBuffer,y.quadTriangleIndexBuffer,y.debugSegments),C.draw(d,g.LINE_STRIP,L,M,R,rr.disabled,Mm(v,l.aO.red),U,V,y.debugBuffer,y.tileBorderIndexBuffer,y.debugSegments)}function Bh(y,s,f){const d=y.context,g=d.gl,v=y.colorModeForRenderPass(),C=new Tn(g.LEQUAL,Tn.ReadWrite,y.depthRangeFor3D),L=y.useProgram("terrain"),M=s.getTerrainMesh();d.bindFramebuffer.set(null),d.viewport.set([0,0,y.width,y.height]);for(const R of f){const V=y.renderToTexture.getTexture(R),U=s.getTerrainData(R.tileID);d.activeTexture.set(g.TEXTURE0),g.bindTexture(g.TEXTURE_2D,V.texture);const X={u_matrix:y.transform.calculatePosMatrix(R.tileID.toUnwrapped()),u_texture:0,u_ele_delta:s.getMeshFrameDelta(y.transform.zoom)};L.draw(d,g.TRIANGLES,C,fr.disabled,v,rr.backCCW,X,U,"terrain",M.vertexBuffer,M.indexBuffer,M.segments)}}class Hm{constructor(s,f){this.context=new By(s),this.transform=f,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:l.an(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=ni.maxUnderzooming+ni.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new nl}resize(s,f,d){if(this.width=Math.floor(s*d),this.height=Math.floor(f*d),this.pixelRatio=d,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const g of this.style._order)this.style._layers[g].resize()}setup(){const s=this.context,f=new l.aV;f.emplaceBack(0,0),f.emplaceBack(l.W,0),f.emplaceBack(0,l.W),f.emplaceBack(l.W,l.W),this.tileExtentBuffer=s.createVertexBuffer(f,gh.members),this.tileExtentSegments=l.$.simpleSegment(0,0,4,2);const d=new l.aV;d.emplaceBack(0,0),d.emplaceBack(l.W,0),d.emplaceBack(0,l.W),d.emplaceBack(l.W,l.W),this.debugBuffer=s.createVertexBuffer(d,gh.members),this.debugSegments=l.$.simpleSegment(0,0,4,5);const g=new l.Z;g.emplaceBack(0,0,0,0),g.emplaceBack(l.W,0,l.W,0),g.emplaceBack(0,l.W,0,l.W),g.emplaceBack(l.W,l.W,l.W,l.W),this.rasterBoundsBuffer=s.createVertexBuffer(g,gn.members),this.rasterBoundsSegments=l.$.simpleSegment(0,0,4,2);const v=new l.aV;v.emplaceBack(0,0),v.emplaceBack(1,0),v.emplaceBack(0,1),v.emplaceBack(1,1),this.viewportBuffer=s.createVertexBuffer(v,gh.members),this.viewportSegments=l.$.simpleSegment(0,0,4,2);const C=new l.aW;C.emplaceBack(0),C.emplaceBack(1),C.emplaceBack(3),C.emplaceBack(2),C.emplaceBack(0),this.tileBorderIndexBuffer=s.createIndexBuffer(C);const L=new l.aX;L.emplaceBack(0,1,2),L.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=s.createIndexBuffer(L);const M=this.context.gl;this.stencilClearMode=new fr({func:M.ALWAYS,mask:0},0,255,M.ZERO,M.ZERO,M.ZERO)}clearStencil(){const s=this.context,f=s.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const d=l.F();l.aN(d,0,this.width,this.height,0,0,1),l.J(d,d,[f.drawingBufferWidth,f.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(s,f.TRIANGLES,Tn.disabled,this.stencilClearMode,Zr.disabled,rr.disabled,bh(d),null,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(s,f){if(this.currentStencilSource===s.source||!s.isTileClipped()||!f||!f.length)return;this.currentStencilSource=s.source;const d=this.context,g=d.gl;this.nextStencilID+f.length>256&&this.clearStencil(),d.setColorMode(Zr.disabled),d.setDepthMode(Tn.disabled);const v=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(const C of f){const L=this._tileClippingMaskIDs[C.key]=this.nextStencilID++,M=this.style.map.terrain&&this.style.map.terrain.getTerrainData(C);v.draw(d,g.TRIANGLES,Tn.disabled,new fr({func:g.ALWAYS,mask:0},L,255,g.KEEP,g.KEEP,g.REPLACE),Zr.disabled,rr.disabled,bh(C.posMatrix),M,"$clipping",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const s=this.nextStencilID++,f=this.context.gl;return new fr({func:f.NOTEQUAL,mask:255},s,255,f.KEEP,f.KEEP,f.REPLACE)}stencilModeForClipping(s){const f=this.context.gl;return new fr({func:f.EQUAL,mask:255},this._tileClippingMaskIDs[s.key],0,f.KEEP,f.KEEP,f.REPLACE)}stencilConfigForOverlap(s){const f=this.context.gl,d=s.sort((C,L)=>L.overscaledZ-C.overscaledZ),g=d[d.length-1].overscaledZ,v=d[0].overscaledZ-g+1;if(v>1){this.currentStencilSource=void 0,this.nextStencilID+v>256&&this.clearStencil();const C={};for(let L=0;L=0;this.currentLayer--){const M=this.style._layers[d[this.currentLayer]],R=g[M.source],V=v[M.source];this._renderTileClippingMasks(M,V),this.renderLayer(this,R,M,V)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayeree.source&&!ee.isHidden(V)?[R.sourceCaches[ee.source]]:[]),oe=X.filter(ee=>ee.getSource().type==="vector"),ie=X.filter(ee=>ee.getSource().type!=="vector"),ce=ee=>{(!U||U.getSource().maxzoomce(ee)),U||ie.forEach(ee=>ce(ee)),U}(this.style,this.transform.zoom);M&&function(R,V,U){for(let X=0;X0),g&&(l.a_(f,d),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(v,C){const L=v.context,M=L.gl,R=Zr.unblended,V=new Tn(M.LEQUAL,Tn.ReadWrite,[0,1]),U=C.getTerrainMesh(),X=C.sourceCache.getRenderableTiles(),oe=v.useProgram("terrainDepth");L.bindFramebuffer.set(C.getFramebuffer("depth").framebuffer),L.viewport.set([0,0,v.width/devicePixelRatio,v.height/devicePixelRatio]),L.clear({color:l.aO.transparent,depth:1});for(const ie of X){const ce=C.getTerrainData(ie.tileID),ee={u_matrix:v.transform.calculatePosMatrix(ie.tileID.toUnwrapped()),u_ele_delta:C.getMeshFrameDelta(v.transform.zoom)};oe.draw(L,M.TRIANGLES,V,fr.disabled,R,rr.backCCW,ee,ce,"terrain",U.vertexBuffer,U.indexBuffer,U.segments)}L.bindFramebuffer.set(null),L.viewport.set([0,0,v.width,v.height])}(this,this.style.map.terrain),function(v,C){const L=v.context,M=L.gl,R=Zr.unblended,V=new Tn(M.LEQUAL,Tn.ReadWrite,[0,1]),U=C.getTerrainMesh(),X=C.getCoordsTexture(),oe=C.sourceCache.getRenderableTiles(),ie=v.useProgram("terrainCoords");L.bindFramebuffer.set(C.getFramebuffer("coords").framebuffer),L.viewport.set([0,0,v.width/devicePixelRatio,v.height/devicePixelRatio]),L.clear({color:l.aO.transparent,depth:1}),C.coordsIndex=[];for(const ce of oe){const ee=C.getTerrainData(ce.tileID);L.activeTexture.set(M.TEXTURE0),M.bindTexture(M.TEXTURE_2D,X.texture);const Se={u_matrix:v.transform.calculatePosMatrix(ce.tileID.toUnwrapped()),u_terrain_coords_id:(255-C.coordsIndex.length)/255,u_texture:0,u_ele_delta:C.getMeshFrameDelta(v.transform.zoom)};ie.draw(L,M.TRIANGLES,V,fr.disabled,R,rr.backCCW,Se,ee,"terrain",U.vertexBuffer,U.indexBuffer,U.segments),C.coordsIndex.push(ce.tileID.key)}L.bindFramebuffer.set(null),L.viewport.set([0,0,v.width,v.height])}(this,this.style.map.terrain))}renderLayer(s,f,d,g){if(!d.isHidden(this.transform.zoom)&&(d.type==="background"||d.type==="custom"||(g||[]).length))switch(this.id=d.id,d.type){case"symbol":(function(v,C,L,M,R){if(v.renderPass!=="translucent")return;const V=fr.disabled,U=v.colorModeForRenderPass();(L._unevaluatedLayout.hasValue("text-variable-anchor")||L._unevaluatedLayout.hasValue("text-variable-anchor-offset"))&&function(X,oe,ie,ce,ee,Se,ze){const fe=oe.transform,Me=ee==="map",Fe=Se==="map";for(const Ue of X){const Xe=ce.getTile(Ue),nt=Xe.getBucket(ie);if(!nt||!nt.text||!nt.text.segments.get().length)continue;const tt=l.ag(nt.textSizeData,fe.zoom),ut=rn(Xe,1,oe.transform.zoom),pt=sn(Ue.posMatrix,Fe,Me,oe.transform,ut),cn=ie.layout.get("icon-text-fit")!=="none"&&nt.hasIconData();if(tt){const mt=Math.pow(2,fe.zoom-Xe.tileID.overscaledZ);kh(nt,Me,Fe,ze,fe,pt,Ue.posMatrix,mt,tt,cn,oe.style.map.terrain?(jt,hn)=>oe.style.map.terrain.getElevation(Ue,jt,hn):null)}}}(M,v,L,C,L.layout.get("text-rotation-alignment"),L.layout.get("text-pitch-alignment"),R),L.paint.get("icon-opacity").constantOr(1)!==0&&Rh(v,C,L,M,!1,L.paint.get("icon-translate"),L.paint.get("icon-translate-anchor"),L.layout.get("icon-rotation-alignment"),L.layout.get("icon-pitch-alignment"),L.layout.get("icon-keep-upright"),V,U),L.paint.get("text-opacity").constantOr(1)!==0&&Rh(v,C,L,M,!0,L.paint.get("text-translate"),L.paint.get("text-translate-anchor"),L.layout.get("text-rotation-alignment"),L.layout.get("text-pitch-alignment"),L.layout.get("text-keep-upright"),V,U),C.map.showCollisionBoxes&&(Ah(v,C,L,M,L.paint.get("text-translate"),L.paint.get("text-translate-anchor"),!0),Ah(v,C,L,M,L.paint.get("icon-translate"),L.paint.get("icon-translate-anchor"),!1))})(s,f,d,g,this.style.placement.variableOffsets);break;case"circle":(function(v,C,L,M){if(v.renderPass!=="translucent")return;const R=L.paint.get("circle-opacity"),V=L.paint.get("circle-stroke-width"),U=L.paint.get("circle-stroke-opacity"),X=!L.layout.get("circle-sort-key").isConstant();if(R.constantOr(1)===0&&(V.constantOr(1)===0||U.constantOr(1)===0))return;const oe=v.context,ie=oe.gl,ce=v.depthModeForSublayer(0,Tn.ReadOnly),ee=fr.disabled,Se=v.colorModeForRenderPass(),ze=[];for(let fe=0;fefe.sortKey-Me.sortKey);for(const fe of ze){const{programConfiguration:Me,program:Fe,layoutVertexBuffer:Ue,indexBuffer:Xe,uniformValues:nt,terrainData:tt}=fe.state;Fe.draw(oe,ie.TRIANGLES,ce,ee,Se,rr.disabled,nt,tt,L.id,Ue,Xe,fe.segments,L.paint,v.transform.zoom,Me)}})(s,f,d,g);break;case"heatmap":(function(v,C,L,M){if(L.paint.get("heatmap-opacity")!==0)if(v.renderPass==="offscreen"){const R=v.context,V=R.gl,U=fr.disabled,X=new Zr([V.ONE,V.ONE],l.aO.transparent,[!0,!0,!0,!0]);(function(oe,ie,ce){const ee=oe.gl;oe.activeTexture.set(ee.TEXTURE1),oe.viewport.set([0,0,ie.width/4,ie.height/4]);let Se=ce.heatmapFbo;if(Se)ee.bindTexture(ee.TEXTURE_2D,Se.colorAttachment.get()),oe.bindFramebuffer.set(Se.framebuffer);else{const ze=ee.createTexture();ee.bindTexture(ee.TEXTURE_2D,ze),ee.texParameteri(ee.TEXTURE_2D,ee.TEXTURE_WRAP_S,ee.CLAMP_TO_EDGE),ee.texParameteri(ee.TEXTURE_2D,ee.TEXTURE_WRAP_T,ee.CLAMP_TO_EDGE),ee.texParameteri(ee.TEXTURE_2D,ee.TEXTURE_MIN_FILTER,ee.LINEAR),ee.texParameteri(ee.TEXTURE_2D,ee.TEXTURE_MAG_FILTER,ee.LINEAR),Se=ce.heatmapFbo=oe.createFramebuffer(ie.width/4,ie.height/4,!1,!1),function(fe,Me,Fe,Ue){var Xe,nt;const tt=fe.gl,ut=(Xe=fe.HALF_FLOAT)!==null&&Xe!==void 0?Xe:tt.UNSIGNED_BYTE,pt=(nt=fe.RGBA16F)!==null&&nt!==void 0?nt:tt.RGBA;tt.texImage2D(tt.TEXTURE_2D,0,pt,Me.width/4,Me.height/4,0,tt.RGBA,ut,null),Ue.colorAttachment.set(Fe)}(oe,ie,ze,Se)}})(R,v,L),R.clear({color:l.aO.transparent});for(let oe=0;oe{const fe=l.F();l.aN(fe,0,ce.width,ce.height,0,0,1);const Me=ce.context.gl;return{u_matrix:fe,u_world:[Me.drawingBufferWidth,Me.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:ee.paint.get("heatmap-opacity")}})(R,V),null,V.id,R.viewportBuffer,R.quadTriangleIndexBuffer,R.viewportSegments,V.paint,R.transform.zoom)}(v,L))})(s,f,d,g);break;case"line":(function(v,C,L,M){if(v.renderPass!=="translucent")return;const R=L.paint.get("line-opacity"),V=L.paint.get("line-width");if(R.constantOr(1)===0||V.constantOr(1)===0)return;const U=v.depthModeForSublayer(0,Tn.ReadOnly),X=v.colorModeForRenderPass(),oe=L.paint.get("line-dasharray"),ie=L.paint.get("line-pattern"),ce=ie.constantOr(1),ee=L.paint.get("line-gradient"),Se=L.getCrossfadeParameters(),ze=ce?"linePattern":oe?"lineSDF":ee?"lineGradient":"line",fe=v.context,Me=fe.gl;let Fe=!0;for(const Ue of M){const Xe=C.getTile(Ue);if(ce&&!Xe.patternsLoaded())continue;const nt=Xe.getBucket(L);if(!nt)continue;const tt=nt.programConfigurations.get(L.id),ut=v.context.program.get(),pt=v.useProgram(ze,tt),cn=Fe||pt.program!==ut,mt=v.style.map.terrain&&v.style.map.terrain.getTerrainData(Ue),jt=ie.constantOr(null);if(jt&&Xe.imageAtlas){const Qt=Xe.imageAtlas,dn=Qt.patternPositions[jt.to.toString()],yn=Qt.patternPositions[jt.from.toString()];dn&&yn&&tt.setConstantPatternPositions(dn,yn)}const hn=mt?Ue:null,Ln=ce?Ol(v,Xe,L,Se,hn):oe?wh(v,Xe,L,oe,Se,hn):ee?Dm(v,Xe,L,nt.lineClipsArray.length,hn):xh(v,Xe,L,hn);if(ce)fe.activeTexture.set(Me.TEXTURE0),Xe.imageAtlasTexture.bind(Me.LINEAR,Me.CLAMP_TO_EDGE),tt.updatePaintBuffers(Se);else if(oe&&(cn||v.lineAtlas.dirty))fe.activeTexture.set(Me.TEXTURE0),v.lineAtlas.bind(fe);else if(ee){const Qt=nt.gradients[L.id];let dn=Qt.texture;if(L.gradientVersion!==Qt.version){let yn=256;if(L.stepInterpolant){const Or=C.getSource().maxzoom,Hn=Ue.canonical.z===Or?Math.ceil(1<0?f.pop():null}isPatternMissing(s){if(!s)return!1;if(!s.from||!s.to)return!0;const f=this.imageManager.getPattern(s.from.toString()),d=this.imageManager.getPattern(s.to.toString());return!f||!d}useProgram(s,f){this.cache=this.cache||{};const d=s+(f?f.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"")+(this.style.map.terrain?"/terrain":"");return this.cache[d]||(this.cache[d]=new rl(this.context,_c[s],f,Rm[s],this._showOverdrawInspector,this.style.map.terrain)),this.cache[d]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const s=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(s.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new me(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){const{drawingBufferWidth:s,drawingBufferHeight:f}=this.context.gl;return this.width!==s||this.height!==f}}class ol{constructor(s,f){this.points=s,this.planes=f}static fromInvProjectionMatrix(s,f,d){const g=Math.pow(2,d),v=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(L=>{const M=1/(L=l.af([],L,s))[3]/f*g;return l.a$(L,L,[M,M,1/L[3],M])}),C=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(L=>{const M=function(X,oe){var ie=oe[0],ce=oe[1],ee=oe[2],Se=ie*ie+ce*ce+ee*ee;return Se>0&&(Se=1/Math.sqrt(Se)),X[0]=oe[0]*Se,X[1]=oe[1]*Se,X[2]=oe[2]*Se,X}([],function(X,oe,ie){var ce=oe[0],ee=oe[1],Se=oe[2],ze=ie[0],fe=ie[1],Me=ie[2];return X[0]=ee*Me-Se*fe,X[1]=Se*ze-ce*Me,X[2]=ce*fe-ee*ze,X}([],ye([],v[L[0]],v[L[1]]),ye([],v[L[2]],v[L[1]]))),R=-((V=M)[0]*(U=v[L[1]])[0]+V[1]*U[1]+V[2]*U[2]);var V,U;return M.concat(R)});return new ol(v,C)}}class sl{constructor(s,f){this.min=s,this.max=f,this.center=function(d,g,v){return d[0]=.5*g[0],d[1]=.5*g[1],d[2]=.5*g[2],d}([],function(d,g,v){return d[0]=g[0]+v[0],d[1]=g[1]+v[1],d[2]=g[2]+v[2],d}([],this.min,this.max))}quadrant(s){const f=[s%2==0,s<2],d=he(this.min),g=he(this.max);for(let v=0;v=0&&C++;if(C===0)return 0;C!==f.length&&(d=!1)}if(d)return 2;for(let g=0;g<3;g++){let v=Number.MAX_VALUE,C=-Number.MAX_VALUE;for(let L=0;Lthis.max[g]-this.min[g])return 0}return 1}}class Su{constructor(s=0,f=0,d=0,g=0){if(isNaN(s)||s<0||isNaN(f)||f<0||isNaN(d)||d<0||isNaN(g)||g<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=s,this.bottom=f,this.left=d,this.right=g}interpolate(s,f,d){return f.top!=null&&s.top!=null&&(this.top=l.z.number(s.top,f.top,d)),f.bottom!=null&&s.bottom!=null&&(this.bottom=l.z.number(s.bottom,f.bottom,d)),f.left!=null&&s.left!=null&&(this.left=l.z.number(s.left,f.left,d)),f.right!=null&&s.right!=null&&(this.right=l.z.number(s.right,f.right,d)),this}getCenter(s,f){const d=l.ac((this.left+s-this.right)/2,0,s),g=l.ac((this.top+f-this.bottom)/2,0,f);return new l.P(d,g)}equals(s){return this.top===s.top&&this.bottom===s.bottom&&this.left===s.left&&this.right===s.right}clone(){return new Su(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}const Mp=85.051129;class Vh{constructor(s,f,d,g,v){this.tileSize=512,this._renderWorldCopies=v===void 0||!!v,this._minZoom=s||0,this._maxZoom=f||22,this._minPitch=d??0,this._maxPitch=g??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new l.M(0,0),this._elevation=0,this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new Su,this._posMatrixCache={},this._alignedPosMatrixCache={},this.minElevationForCurrentTile=0}clone(){const s=new Vh(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return s.apply(this),s}apply(s){this.tileSize=s.tileSize,this.latRange=s.latRange,this.width=s.width,this.height=s.height,this._center=s._center,this._elevation=s._elevation,this.minElevationForCurrentTile=s.minElevationForCurrentTile,this.zoom=s.zoom,this.angle=s.angle,this._fov=s._fov,this._pitch=s._pitch,this._unmodified=s._unmodified,this._edgeInsets=s._edgeInsets.clone(),this._calcMatrices()}get minZoom(){return this._minZoom}set minZoom(s){this._minZoom!==s&&(this._minZoom=s,this.zoom=Math.max(this.zoom,s))}get maxZoom(){return this._maxZoom}set maxZoom(s){this._maxZoom!==s&&(this._maxZoom=s,this.zoom=Math.min(this.zoom,s))}get minPitch(){return this._minPitch}set minPitch(s){this._minPitch!==s&&(this._minPitch=s,this.pitch=Math.max(this.pitch,s))}get maxPitch(){return this._maxPitch}set maxPitch(s){this._maxPitch!==s&&(this._maxPitch=s,this.pitch=Math.min(this.pitch,s))}get renderWorldCopies(){return this._renderWorldCopies}set renderWorldCopies(s){s===void 0?s=!0:s===null&&(s=!1),this._renderWorldCopies=s}get worldSize(){return this.tileSize*this.scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new l.P(this.width,this.height)}get bearing(){return-this.angle/Math.PI*180}set bearing(s){const f=-l.b1(s,-180,180)*Math.PI/180;this.angle!==f&&(this._unmodified=!1,this.angle=f,this._calcMatrices(),this.rotationMatrix=function(){var d=new l.A(4);return l.A!=Float32Array&&(d[1]=0,d[2]=0),d[0]=1,d[3]=1,d}(),function(d,g,v){var C=g[0],L=g[1],M=g[2],R=g[3],V=Math.sin(v),U=Math.cos(v);d[0]=C*U+M*V,d[1]=L*U+R*V,d[2]=C*-V+M*U,d[3]=L*-V+R*U}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(s){const f=l.ac(s,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==f&&(this._unmodified=!1,this._pitch=f,this._calcMatrices())}get fov(){return this._fov/Math.PI*180}set fov(s){s=Math.max(.01,Math.min(60,s)),this._fov!==s&&(this._unmodified=!1,this._fov=s/180*Math.PI,this._calcMatrices())}get zoom(){return this._zoom}set zoom(s){const f=Math.min(Math.max(s,this.minZoom),this.maxZoom);this._zoom!==f&&(this._unmodified=!1,this._zoom=f,this.tileZoom=Math.max(0,Math.floor(f)),this.scale=this.zoomScale(f),this._constrain(),this._calcMatrices())}get center(){return this._center}set center(s){s.lat===this._center.lat&&s.lng===this._center.lng||(this._unmodified=!1,this._center=s,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}set elevation(s){s!==this._elevation&&(this._elevation=s,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}set padding(s){this._edgeInsets.equals(s)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,s,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}isPaddingEqual(s){return this._edgeInsets.equals(s)}interpolatePadding(s,f,d){this._unmodified=!1,this._edgeInsets.interpolate(s,f,d),this._constrain(),this._calcMatrices()}coveringZoomLevel(s){const f=(s.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/s.tileSize));return Math.max(0,f)}getVisibleUnwrappedCoordinates(s){const f=[new l.b2(0,s)];if(this._renderWorldCopies){const d=this.pointCoordinate(new l.P(0,0)),g=this.pointCoordinate(new l.P(this.width,0)),v=this.pointCoordinate(new l.P(this.width,this.height)),C=this.pointCoordinate(new l.P(0,this.height)),L=Math.floor(Math.min(d.x,g.x,v.x,C.x)),M=Math.floor(Math.max(d.x,g.x,v.x,C.x)),R=1;for(let V=L-R;V<=M+R;V++)V!==0&&f.push(new l.b2(V,s))}return f}coveringTiles(s){var f,d;let g=this.coveringZoomLevel(s);const v=g;if(s.minzoom!==void 0&&gs.maxzoom&&(g=s.maxzoom);const C=this.pointCoordinate(this.getCameraPoint()),L=l.Y.fromLngLat(this.center),M=Math.pow(2,g),R=[M*C.x,M*C.y,0],V=[M*L.x,M*L.y,0],U=ol.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,g);let X=s.minzoom||0;!s.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(X=g);const oe=s.terrain?2/Math.min(this.tileSize,s.tileSize)*this.tileSize:3,ie=fe=>({aabb:new sl([fe*M,0,0],[(fe+1)*M,M,0]),zoom:0,x:0,y:0,wrap:fe,fullyVisible:!1}),ce=[],ee=[],Se=g,ze=s.reparseOverscaled?v:g;if(this._renderWorldCopies)for(let fe=1;fe<=3;fe++)ce.push(ie(-fe)),ce.push(ie(fe));for(ce.push(ie(0));ce.length>0;){const fe=ce.pop(),Me=fe.x,Fe=fe.y;let Ue=fe.fullyVisible;if(!Ue){const pt=fe.aabb.intersects(U);if(pt===0)continue;Ue=pt===2}const Xe=s.terrain?R:V,nt=fe.aabb.distanceX(Xe),tt=fe.aabb.distanceY(Xe),ut=Math.max(Math.abs(nt),Math.abs(tt));if(fe.zoom===Se||ut>oe+(1<=X){const pt=Se-fe.zoom,cn=R[0]-.5-(Me<>1),jt=fe.zoom+1;let hn=fe.aabb.quadrant(pt);if(s.terrain){const Ln=new l.Q(jt,fe.wrap,jt,cn,mt),Qt=s.terrain.getMinMaxElevation(Ln),dn=(f=Qt.minElevation)!==null&&f!==void 0?f:this.elevation,yn=(d=Qt.maxElevation)!==null&&d!==void 0?d:this.elevation;hn=new sl([hn.min[0],hn.min[1],dn],[hn.max[0],hn.max[1],yn])}ce.push({aabb:hn,zoom:jt,x:cn,y:mt,wrap:fe.wrap,fullyVisible:Ue})}}return ee.sort((fe,Me)=>fe.distanceSq-Me.distanceSq).map(fe=>fe.tileID)}resize(s,f){this.width=s,this.height=f,this.pixelsToGLUnits=[2/s,-2/f],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(s){return Math.pow(2,s)}scaleZoom(s){return Math.log(s)/Math.LN2}project(s){const f=l.ac(s.lat,-85.051129,Mp);return new l.P(l.N(s.lng)*this.worldSize,l.O(f)*this.worldSize)}unproject(s){return new l.Y(s.x/this.worldSize,s.y/this.worldSize).toLngLat()}get point(){return this.project(this.center)}getCameraPosition(){return{lngLat:this.pointLocation(this.getCameraPoint()),altitude:Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter+this.elevation}}recalculateZoom(s){const f=this.elevation,d=Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter,g=this.pointLocation(this.centerPoint,s),v=s.getElevationForLngLatZoom(g,this.tileZoom);if(!(this.elevation-v))return;const C=d+f-v,L=Math.cos(this._pitch)*this.cameraToCenterDistance/C/l.b3(1,g.lat),M=this.scaleZoom(L/this.tileSize);this._elevation=v,this._center=g,this.zoom=M}setLocationAtPoint(s,f){const d=this.pointCoordinate(f),g=this.pointCoordinate(this.centerPoint),v=this.locationCoordinate(s),C=new l.Y(v.x-(d.x-g.x),v.y-(d.y-g.y));this.center=this.coordinateLocation(C),this._renderWorldCopies&&(this.center=this.center.wrap())}locationPoint(s,f){return f?this.coordinatePoint(this.locationCoordinate(s),f.getElevationForLngLatZoom(s,this.tileZoom),this.pixelMatrix3D):this.coordinatePoint(this.locationCoordinate(s))}pointLocation(s,f){return this.coordinateLocation(this.pointCoordinate(s,f))}locationCoordinate(s){return l.Y.fromLngLat(s)}coordinateLocation(s){return s&&s.toLngLat()}pointCoordinate(s,f){if(f){const X=f.pointCoordinate(s);if(X!=null)return X}const d=[s.x,s.y,0,1],g=[s.x,s.y,1,1];l.af(d,d,this.pixelMatrixInverse),l.af(g,g,this.pixelMatrixInverse);const v=d[3],C=g[3],L=d[1]/v,M=g[1]/C,R=d[2]/v,V=g[2]/C,U=R===V?0:(0-R)/(V-R);return new l.Y(l.z.number(d[0]/v,g[0]/C,U)/this.worldSize,l.z.number(L,M,U)/this.worldSize)}coordinatePoint(s,f=0,d=this.pixelMatrix){const g=[s.x*this.worldSize,s.y*this.worldSize,f,1];return l.af(g,g,d),new l.P(g[0]/g[3],g[1]/g[3])}getBounds(){const s=Math.max(0,this.height/2-this.getHorizon());return new Ne().extend(this.pointLocation(new l.P(0,s))).extend(this.pointLocation(new l.P(this.width,s))).extend(this.pointLocation(new l.P(this.width,this.height))).extend(this.pointLocation(new l.P(0,this.height)))}getMaxBounds(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new Ne([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null}getHorizon(){return Math.tan(Math.PI/2-this._pitch)*this.cameraToCenterDistance*.85}setMaxBounds(s){s?(this.lngRange=[s.getWest(),s.getEast()],this.latRange=[s.getSouth(),s.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-85.051129,Mp])}calculatePosMatrix(s,f=!1){const d=s.key,g=f?this._alignedPosMatrixCache:this._posMatrixCache;if(g[d])return g[d];const v=s.canonical,C=this.worldSize/this.zoomScale(v.z),L=v.x+Math.pow(2,v.z)*s.wrap,M=l.an(new Float64Array(16));return l.H(M,M,[L*C,v.y*C,0]),l.J(M,M,[C/l.W,C/l.W,1]),l.K(M,f?this.alignedProjMatrix:this.projMatrix,M),g[d]=new Float32Array(M),g[d]}customLayerMatrix(){return this.mercatorMatrix.slice()}getConstrained(s,f){f=l.ac(+f,this.minZoom,this.maxZoom);const d={center:new l.M(s.lng,s.lat),zoom:f};let g=this.lngRange;if(!this._renderWorldCopies&&g===null){const fe=179.9999999999;g=[-fe,fe]}const v=this.tileSize*this.zoomScale(d.zoom);let C=0,L=v,M=0,R=v,V=0,U=0;const{x:X,y:oe}=this.size;if(this.latRange){const fe=this.latRange;C=l.O(fe[1])*v,L=l.O(fe[0])*v,L-CL&&(Se=L-fe)}if(g){const fe=(M+R)/2;let Me=ie;this._renderWorldCopies&&(Me=l.b1(ie,fe-v/2,fe+v/2));const Fe=X/2;Me-FeR&&(ee=R-Fe)}if(ee!==void 0||Se!==void 0){const fe=new l.P(ee??ie,Se??ce);d.center=this.unproject.call({worldSize:v},fe).wrap()}return d}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;const s=this._unmodified,{center:f,zoom:d}=this.getConstrained(this.center,this.zoom);this.center=f,this.zoom=d,this._unmodified=s,this._constraining=!1}_calcMatrices(){if(!this.height)return;const s=this.centerOffset,f=this.point.x,d=this.point.y;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height,this._pixelPerMeter=l.b3(1,this.center.lat)*this.worldSize;let g=l.an(new Float64Array(16));l.J(g,g,[this.width/2,-this.height/2,1]),l.H(g,g,[1,-1,0]),this.labelPlaneMatrix=g,g=l.an(new Float64Array(16)),l.J(g,g,[1,-1,1]),l.H(g,g,[-1,-1,0]),l.J(g,g,[2/this.width,2/this.height,1]),this.glCoordMatrix=g;const v=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),C=Math.min(this.elevation,this.minElevationForCurrentTile),L=v-C*this._pixelPerMeter/Math.cos(this._pitch),M=C<0?L:v,R=Math.PI/2+this._pitch,V=this._fov*(.5+s.y/this.height),U=Math.sin(V)*M/Math.sin(l.ac(Math.PI-R-V,.01,Math.PI-.01)),X=this.getHorizon(),oe=2*Math.atan(X/this.cameraToCenterDistance)*(.5+s.y/(2*X)),ie=Math.sin(oe)*M/Math.sin(l.ac(Math.PI-R-oe,.01,Math.PI-.01)),ce=Math.min(U,ie),ee=1.01*(Math.cos(Math.PI/2-this._pitch)*ce+M),Se=this.height/50;g=new Float64Array(16),l.b4(g,this._fov,this.width/this.height,Se,ee),g[8]=2*-s.x/this.width,g[9]=2*s.y/this.height,l.J(g,g,[1,-1,1]),l.H(g,g,[0,0,-this.cameraToCenterDistance]),l.b5(g,g,this._pitch),l.ad(g,g,this.angle),l.H(g,g,[-f,-d,0]),this.mercatorMatrix=l.J([],g,[this.worldSize,this.worldSize,this.worldSize]),l.J(g,g,[1,1,this._pixelPerMeter]),this.pixelMatrix=l.K(new Float64Array(16),this.labelPlaneMatrix,g),l.H(g,g,[0,0,-this.elevation]),this.projMatrix=g,this.invProjMatrix=l.ar([],g),this.pixelMatrix3D=l.K(new Float64Array(16),this.labelPlaneMatrix,g);const ze=this.width%2/2,fe=this.height%2/2,Me=Math.cos(this.angle),Fe=Math.sin(this.angle),Ue=f-Math.round(f)+Me*ze+Fe*fe,Xe=d-Math.round(d)+Me*fe+Fe*ze,nt=new Float64Array(g);if(l.H(nt,nt,[Ue>.5?Ue-1:Ue,Xe>.5?Xe-1:Xe,0]),this.alignedProjMatrix=nt,g=l.ar(new Float64Array(16),this.pixelMatrix),!g)throw new Error("failed to invert matrix");this.pixelMatrixInverse=g,this._posMatrixCache={},this._alignedPosMatrixCache={}}maxPitchScaleFactor(){if(!this.pixelMatrixInverse)return 1;const s=this.pointCoordinate(new l.P(0,0)),f=[s.x*this.worldSize,s.y*this.worldSize,0,1];return l.af(f,f,this.pixelMatrix)[3]/this.cameraToCenterDistance}getCameraPoint(){const s=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new l.P(0,s))}getCameraQueryGeometry(s){const f=this.getCameraPoint();if(s.length===1)return[s[0],f];{let d=f.x,g=f.y,v=f.x,C=f.y;for(const L of s)d=Math.min(d,L.x),g=Math.min(g,L.y),v=Math.max(v,L.x),C=Math.max(C,L.y);return[new l.P(d,g),new l.P(v,g),new l.P(v,C),new l.P(d,C),new l.P(d,g)]}}lngLatToCameraDepth(s,f){const d=this.locationCoordinate(s),g=[d.x*this.worldSize,d.y*this.worldSize,f,1];return l.af(g,g,this.projMatrix),g[2]/g[3]}}function Ap(y,s){let f,d=!1,g=null,v=null;const C=()=>{g=null,d&&(y.apply(v,f),g=setTimeout(C,s),d=!1)};return(...L)=>(d=!0,v=this,f=L,g||C(),g)}class kp{constructor(s){this._getCurrentHash=()=>{const f=window.location.hash.replace("#","");if(this._hashName){let d;return f.split("&").map(g=>g.split("=")).forEach(g=>{g[0]===this._hashName&&(d=g)}),(d&&d[1]||"").split("/")}return f.split("/")},this._onHashChange=()=>{const f=this._getCurrentHash();if(f.length>=3&&!f.some(d=>isNaN(d))){const d=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(f[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+f[2],+f[1]],zoom:+f[0],bearing:d,pitch:+(f[4]||0)}),!0}return!1},this._updateHashUnthrottled=()=>{const f=window.location.href.replace(/(#.+)?$/,this.getHashString());try{window.history.replaceState(window.history.state,null,f)}catch{}},this._updateHash=Ap(this._updateHashUnthrottled,300),this._hashName=s&&encodeURIComponent(s)}addTo(s){return this._map=s,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()),delete this._map,this}getHashString(s){const f=this._map.getCenter(),d=Math.round(100*this._map.getZoom())/100,g=Math.ceil((d*Math.LN2+Math.log(512/360/.5))/Math.LN10),v=Math.pow(10,g),C=Math.round(f.lng*v)/v,L=Math.round(f.lat*v)/v,M=this._map.getBearing(),R=this._map.getPitch();let V="";if(V+=s?`/${C}/${L}/${d}`:`${d}/${L}/${C}`,(M||R)&&(V+="/"+Math.round(10*M)/10),R&&(V+=`/${Math.round(R)}`),this._hashName){const U=this._hashName;let X=!1;const oe=window.location.hash.slice(1).split("&").map(ie=>{const ce=ie.split("=")[0];return ce===U?(X=!0,`${ce}=${V}`):ie}).filter(ie=>ie);return X||oe.push(`${U}=${V}`),`#${oe.join("&")}`}return`#${V}`}}const Ic={linearity:.3,easing:l.b6(0,0,.3,1)},Vl=l.e({deceleration:2500,maxSpeed:1400},Ic),Xm=l.e({deceleration:20,maxSpeed:1400},Ic),Ym=l.e({deceleration:1e3,maxSpeed:360},Ic),Km=l.e({deceleration:1e3,maxSpeed:90},Ic);class Jm{constructor(s){this._map=s,this.clear()}clear(){this._inertiaBuffer=[]}record(s){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:E.now(),settings:s})}_drainInertiaBuffer(){const s=this._inertiaBuffer,f=E.now();for(;s.length>0&&f-s[0].time>160;)s.shift()}_onMoveEnd(s){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const f={zoom:0,bearing:0,pitch:0,pan:new l.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:v}of this._inertiaBuffer)f.zoom+=v.zoomDelta||0,f.bearing+=v.bearingDelta||0,f.pitch+=v.pitchDelta||0,v.panDelta&&f.pan._add(v.panDelta),v.around&&(f.around=v.around),v.pinchAround&&(f.pinchAround=v.pinchAround);const d=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,g={};if(f.pan.mag()){const v=Tc(f.pan.mag(),d,l.e({},Vl,s||{}));g.offset=f.pan.mult(v.amount/f.pan.mag()),g.center=this._map.transform.center,Cc(g,v)}if(f.zoom){const v=Tc(f.zoom,d,Xm);g.zoom=this._map.transform.zoom+v.amount,Cc(g,v)}if(f.bearing){const v=Tc(f.bearing,d,Ym);g.bearing=this._map.transform.bearing+l.ac(v.amount,-179,179),Cc(g,v)}if(f.pitch){const v=Tc(f.pitch,d,Km);g.pitch=this._map.transform.pitch+v.amount,Cc(g,v)}if(g.zoom||g.bearing){const v=f.pinchAround===void 0?f.around:f.pinchAround;g.around=v?this._map.unproject(v):this._map.getCenter()}return this.clear(),l.e(g,{noMoveStart:!0})}}function Cc(y,s){(!y.duration||y.durationf.unproject(M)),L=v.reduce((M,R,V,U)=>M.add(R.div(U.length)),new l.P(0,0));super(s,{points:v,point:L,lngLats:C,lngLat:f.unproject(L),originalEvent:d}),this._defaultPrevented=!1}}class Dp extends l.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(s,f,d){super(s,{originalEvent:d}),this._defaultPrevented=!1}}class Ts{constructor(s,f){this._map=s,this._clickTolerance=f.clickTolerance}reset(){delete this._mousedownPos}wheel(s){return this._firePreventable(new Dp(s.type,this._map,s))}mousedown(s,f){return this._mousedownPos=f,this._firePreventable(new So(s.type,this._map,s))}mouseup(s){this._map.fire(new So(s.type,this._map,s))}click(s,f){this._mousedownPos&&this._mousedownPos.dist(f)>=this._clickTolerance||this._map.fire(new So(s.type,this._map,s))}dblclick(s){return this._firePreventable(new So(s.type,this._map,s))}mouseover(s){this._map.fire(new So(s.type,this._map,s))}mouseout(s){this._map.fire(new So(s.type,this._map,s))}touchstart(s){return this._firePreventable(new Qs(s.type,this._map,s))}touchmove(s){this._map.fire(new Qs(s.type,this._map,s))}touchend(s){this._map.fire(new Qs(s.type,this._map,s))}touchcancel(s){this._map.fire(new Qs(s.type,this._map,s))}_firePreventable(s){if(this._map.fire(s),s.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class ea{constructor(s){this._map=s}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(s){this._map.fire(new So(s.type,this._map,s))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new So("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(s){this._delayContextMenu?this._contextMenuEvent=s:this._ignoreContextMenu||this._map.fire(new So(s.type,this._map,s)),this._map.listens("contextmenu")&&s.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Eu{constructor(s){this._map=s}get transform(){return this._map._requestedCameraState||this._map.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(s){return this.transform.pointLocation(l.P.convert(s),this._map.terrain)}}class Ls{constructor(s,f){this._map=s,this._tr=new Eu(s),this._el=s.getCanvasContainer(),this._container=s.getContainer(),this._clickTolerance=f.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(s,f){this.isEnabled()&&s.shiftKey&&s.button===0&&(T.disableDrag(),this._startPos=this._lastPos=f,this._active=!0)}mousemoveWindow(s,f){if(!this._active)return;const d=f;if(this._lastPos.equals(d)||!this._box&&d.dist(this._startPos)v.fitScreenCoordinates(d,g,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",s)}keydown(s){this._active&&s.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",s))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(T.remove(this._box),this._box=null),T.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(s,f){return this._map.fire(new l.k(s,{originalEvent:f}))}}function Ul(y,s){if(y.length!==s.length)throw new Error(`The number of touches and points are not equal - touches ${y.length}, points ${s.length}`);const f={};for(let d=0;dthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=s.timeStamp),d.length===this.numTouches&&(this.centroid=function(g){const v=new l.P(0,0);for(const C of g)v._add(C);return v.div(g.length)}(f),this.touches=Ul(d,f)))}touchmove(s,f,d){if(this.aborted||!this.centroid)return;const g=Ul(d,f);for(const v in this.touches){const C=g[v];(!C||C.dist(this.touches[v])>30)&&(this.aborted=!0)}}touchend(s,f,d){if((!this.centroid||s.timeStamp-this.startTime>500)&&(this.aborted=!0),d.length===0){const g=!this.aborted&&this.centroid;if(this.reset(),g)return g}}}class Rp{constructor(s){this.singleTap=new Uy(s),this.numTaps=s.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(s,f,d){this.singleTap.touchstart(s,f,d)}touchmove(s,f,d){this.singleTap.touchmove(s,f,d)}touchend(s,f,d){const g=this.singleTap.touchend(s,f,d);if(g){const v=s.timeStamp-this.lastTime<500,C=!this.lastTap||this.lastTap.dist(g)<30;if(v&&C||this.reset(),this.count++,this.lastTime=s.timeStamp,this.lastTap=g,this.count===this.numTaps)return this.reset(),g}}}class Gy{constructor(s){this._tr=new Eu(s),this._zoomIn=new Rp({numTouches:1,numTaps:2}),this._zoomOut=new Rp({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(s,f,d){this._zoomIn.touchstart(s,f,d),this._zoomOut.touchstart(s,f,d)}touchmove(s,f,d){this._zoomIn.touchmove(s,f,d),this._zoomOut.touchmove(s,f,d)}touchend(s,f,d){const g=this._zoomIn.touchend(s,f,d),v=this._zoomOut.touchend(s,f,d),C=this._tr;return g?(this._active=!0,s.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:L=>L.easeTo({duration:300,zoom:C.zoom+1,around:C.unproject(g)},{originalEvent:s})}):v?(this._active=!0,s.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:L=>L.easeTo({duration:300,zoom:C.zoom-1,around:C.unproject(v)},{originalEvent:s})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class Iu{constructor(s){this._enabled=!!s.enable,this._moveStateManager=s.moveStateManager,this._clickTolerance=s.clickTolerance||1,this._moveFunction=s.move,this._activateOnStart=!!s.activateOnStart,s.assignEvents(this),this.reset()}reset(s){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(s)}_move(...s){const f=this._moveFunction(...s);if(f.bearingDelta||f.pitchDelta||f.around||f.panDelta)return this._active=!0,f}dragStart(s,f){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(s)&&(this._moveStateManager.startMove(s),this._lastPoint=f.length?f[0]:f,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(s,f){if(!this.isEnabled())return;const d=this._lastPoint;if(!d)return;if(s.preventDefault(),!this._moveStateManager.isValidMoveEvent(s))return void this.reset(s);const g=f.length?f[0]:f;return!this._moved&&g.dist(d){y.mousedown=y.dragStart,y.mousemoveWindow=y.dragMove,y.mouseup=y.dragEnd,y.contextmenu=function(s){s.preventDefault()}},Cu=({enable:y,clickTolerance:s,bearingDegreesPerPixelMoved:f=.8})=>{const d=new ta({checkCorrectEvent:g=>T.mouseButton(g)===0&&g.ctrlKey||T.mouseButton(g)===2});return new Iu({clickTolerance:s,move:(g,v)=>({bearingDelta:(v.x-g.x)*f}),moveStateManager:d,enable:y,assignEvents:Uh})},Tu=({enable:y,clickTolerance:s,pitchDegreesPerPixelMoved:f=-.5})=>{const d=new ta({checkCorrectEvent:g=>T.mouseButton(g)===0&&g.ctrlKey||T.mouseButton(g)===2});return new Iu({clickTolerance:s,move:(g,v)=>({pitchDelta:(v.y-g.y)*f}),moveStateManager:d,enable:y,assignEvents:Uh})};class Qm{constructor(s,f){this._clickTolerance=s.clickTolerance||1,this._map=f,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new l.P(0,0)}minTouchs(){return this._map.cooperativeGestures.isEnabled()?2:1}touchstart(s,f,d){return this._calculateTransform(s,f,d)}touchmove(s,f,d){if(this._active&&!(d.length0&&(this._active=!0);const g=Ul(d,f),v=new l.P(0,0),C=new l.P(0,0);let L=0;for(const R in g){const V=g[R],U=this._touches[R];U&&(v._add(V),C._add(V.sub(U)),L++,g[R]=V)}if(this._touches=g,LMath.abs(y.x)}class ng extends vt{constructor(s){super(),this._currentTouchCount=0,this._map=s}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(s,f,d){super.touchstart(s,f,d),this._currentTouchCount=d.length}_start(s){this._lastPoints=s,jh(s[0].sub(s[1]))&&(this._valid=!1)}_move(s,f,d){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const g=s[0].sub(this._lastPoints[0]),v=s[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(g,v,d.timeStamp),this._valid?(this._lastPoints=s,this._active=!0,{pitchDelta:(g.y+v.y)/2*-.5}):void 0}gestureBeginsVertically(s,f,d){if(this._valid!==void 0)return this._valid;const g=s.mag()>=2,v=f.mag()>=2;if(!g&&!v)return;if(!g||!v)return this._firstMove===void 0&&(this._firstMove=d),d-this._firstMove<100&&void 0;const C=s.y>0==f.y>0;return jh(s)&&jh(f)&&C}}const jy={panStep:100,bearingStep:15,pitchStep:10};class al{constructor(s){this._tr=new Eu(s);const f=jy;this._panStep=f.panStep,this._bearingStep=f.bearingStep,this._pitchStep=f.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(s){if(s.altKey||s.ctrlKey||s.metaKey)return;let f=0,d=0,g=0,v=0,C=0;switch(s.keyCode){case 61:case 107:case 171:case 187:f=1;break;case 189:case 109:case 173:f=-1;break;case 37:s.shiftKey?d=-1:(s.preventDefault(),v=-1);break;case 39:s.shiftKey?d=1:(s.preventDefault(),v=1);break;case 38:s.shiftKey?g=1:(s.preventDefault(),C=-1);break;case 40:s.shiftKey?g=-1:(s.preventDefault(),C=1);break;default:return}return this._rotationDisabled&&(d=0,g=0),{cameraAnimation:L=>{const M=this._tr;L.easeTo({duration:300,easeId:"keyboardHandler",easing:yr,zoom:f?Math.round(M.zoom)+f*(s.shiftKey?2:1):M.zoom,bearing:M.bearing+d*this._bearingStep,pitch:M.pitch+g*this._pitchStep,offset:[-v*this._panStep,-C*this._panStep],center:M.center},{originalEvent:s})}}}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 yr(y){return y*(2-y)}const Pc=4.000244140625;class qh{constructor(s,f){this._onTimeout=d=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(d)},this._map=s,this._tr=new Eu(s),this._triggerRenderFrame=f,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(s){this._defaultZoomRate=s}setWheelZoomRate(s){this._wheelZoomRate=s}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(s){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!s&&s.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}wheel(s){if(!this.isEnabled()||this._map.cooperativeGestures.isEnabled()&&!s[this._map.cooperativeGestures._bypassKey])return;let f=s.deltaMode===WheelEvent.DOM_DELTA_LINE?40*s.deltaY:s.deltaY;const d=E.now(),g=d-(this._lastWheelEventTime||0);this._lastWheelEventTime=d,f!==0&&f%Pc==0?this._type="wheel":f!==0&&Math.abs(f)<4?this._type="trackpad":g>400?(this._type=null,this._lastValue=f,this._timeout=setTimeout(this._onTimeout,40,s)):this._type||(this._type=Math.abs(g*f)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,f+=this._lastValue)),s.shiftKey&&f&&(f/=4),this._type&&(this._lastWheelEvent=s,this._delta-=f,this._active||this._start(s)),s.preventDefault()}_start(s){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const f=T.mousePos(this._map.getCanvas(),s),d=this._tr;this._around=f.y>d.transform.height/2-d.transform.getHorizon()?l.M.convert(this._aroundCenter?d.center:d.unproject(f)):l.M.convert(d.center),this._aroundPoint=d.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const s=this._tr.transform;if(this._delta!==0){const L=this._type==="wheel"&&Math.abs(this._delta)>Pc?this._wheelZoomRate:this._defaultZoomRate;let M=2/(1+Math.exp(-Math.abs(this._delta*L)));this._delta<0&&M!==0&&(M=1/M);const R=typeof this._targetZoom=="number"?s.zoomScale(this._targetZoom):s.scale;this._targetZoom=Math.min(s.maxZoom,Math.max(s.minZoom,s.scaleZoom(R*M))),this._type==="wheel"&&(this._startZoom=s.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const f=typeof this._targetZoom=="number"?this._targetZoom:s.zoom,d=this._startZoom,g=this._easing;let v,C=!1;if(this._type==="wheel"&&d&&g){const L=Math.min((E.now()-this._lastWheelEventTime)/200,1),M=g(L);v=l.z.number(d,f,M),L<1?this._frameId||(this._frameId=!0):C=!0}else v=f,C=!0;return this._active=!0,C&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!C,zoomDelta:v-s.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(s){let f=l.b7;if(this._prevEase){const d=this._prevEase,g=(E.now()-d.start)/d.duration,v=d.easing(g+.01)-d.easing(g),C=.27/Math.sqrt(v*v+1e-4)*.01,L=Math.sqrt(.0729-C*C);f=l.b6(C,L,.25,1)}return this._prevEase={start:E.now(),duration:s,easing:f},f}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class Op{constructor(s,f){this._clickZoom=s,this._tapZoom=f}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class rg{constructor(s){this._tr=new Eu(s),this.reset()}reset(){this._active=!1}dblclick(s,f){return s.preventDefault(),{cameraAnimation:d=>{d.easeTo({duration:300,zoom:this._tr.zoom+(s.shiftKey?-1:1),around:this._tr.unproject(f)},{originalEvent:s})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class ig{constructor(){this._tap=new Rp({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(s,f,d){if(!this._swipePoint)if(this._tapTime){const g=f[0],v=s.timeStamp-this._tapTime<500,C=this._tapPoint.dist(g)<30;v&&C?d.length>0&&(this._swipePoint=g,this._swipeTouch=d[0].identifier):this.reset()}else this._tap.touchstart(s,f,d)}touchmove(s,f,d){if(this._tapTime){if(this._swipePoint){if(d[0].identifier!==this._swipeTouch)return;const g=f[0],v=g.y-this._swipePoint.y;return this._swipePoint=g,s.preventDefault(),this._active=!0,{zoomDelta:v/128}}}else this._tap.touchmove(s,f,d)}touchend(s,f,d){if(this._tapTime)this._swipePoint&&d.length===0&&this.reset();else{const g=this._tap.touchend(s,f,d);g&&(this._tapTime=s.timeStamp,this._tapPoint=g)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class og{constructor(s,f,d){this._el=s,this._mousePan=f,this._touchPan=d}enable(s){this._inertiaOptions=s||{},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()}}class Ps{constructor(s,f,d){this._pitchWithRotate=s.pitchWithRotate,this._mouseRotate=f,this._mousePitch=d}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class Mc{constructor(s,f,d,g){this._el=s,this._touchZoom=f,this._touchRotate=d,this._tapDragZoom=g,this._rotationDisabled=!1,this._enabled=!0}enable(s){this._touchZoom.enable(s),this._rotationDisabled||this._touchRotate.enable(s),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()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class Dt{constructor(s,f){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=s,this._options=f,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const s=this._map.getCanvasContainer();s.classList.add("maplibregl-cooperative-gestures"),this._container=T.create("div","maplibregl-cooperative-gesture-screen",s);let f=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(f=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const d=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),g=document.createElement("div");g.className="maplibregl-desktop-message",g.textContent=f,this._container.appendChild(g);const v=document.createElement("div");v.className="maplibregl-mobile-message",v.textContent=d,this._container.appendChild(v),this._container.setAttribute("aria-hidden","true")}_destoryUI(){this._container&&(T.remove(this._container),this._map.getCanvasContainer().classList.remove("maplibregl-cooperative-gestures")),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destoryUI()}isEnabled(){return this._enabled}touchmove(s){this._onCooperativeGesture(s.touches.length===1)}wheel(s){this._map.scrollZoom.isEnabled()&&this._onCooperativeGesture(!s[this._bypassKey])}_onCooperativeGesture(s){this._enabled&&s&&(this._container.classList.add("maplibregl-show"),setTimeout(()=>{this._container.classList.remove("maplibregl-show")},100))}}const Ut=y=>y.zoom||y.drag||y.pitch||y.rotate;class $h extends l.k{}function Ac(y){return y.panDelta&&y.panDelta.mag()||y.zoomDelta||y.bearingDelta||y.pitchDelta}class zp{constructor(s,f){this.handleWindowEvent=g=>{this.handleEvent(g,`${g.type}Window`)},this.handleEvent=(g,v)=>{if(g.type==="blur")return void this.stop(!0);this._updatingCamera=!0;const C=g.type==="renderFrame"?void 0:g,L={needsRenderFrame:!1},M={},R={},V=g.touches,U=V?this._getMapTouches(V):void 0,X=U?T.touchPos(this._map.getCanvas(),U):T.mousePos(this._map.getCanvas(),g);for(const{handlerName:ce,handler:ee,allowed:Se}of this._handlers){if(!ee.isEnabled())continue;let ze;this._blockedByActive(R,Se,ce)?ee.reset():ee[v||g.type]&&(ze=ee[v||g.type](g,X,U),this.mergeHandlerResult(L,M,ze,ce,C),ze&&ze.needsRenderFrame&&this._triggerRenderFrame()),(ze||ee.isActive())&&(R[ce]=ee)}const oe={};for(const ce in this._previousActiveHandlers)R[ce]||(oe[ce]=C);this._previousActiveHandlers=R,(Object.keys(oe).length||Ac(L))&&(this._changes.push([L,M,oe]),this._triggerRenderFrame()),(Object.keys(R).length||Ac(L))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:ie}=L;ie&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],ie(this._map))},this._map=s,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Jm(s),this._bearingSnap=f.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(f);const d=this._el;this._listeners=[[d,"touchstart",{passive:!0}],[d,"touchmove",{passive:!1}],[d,"touchend",void 0],[d,"touchcancel",void 0],[d,"mousedown",void 0],[d,"mousemove",void 0],[d,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[d,"mouseover",void 0],[d,"mouseout",void 0],[d,"dblclick",void 0],[d,"click",void 0],[d,"keydown",{capture:!1}],[d,"keyup",void 0],[d,"wheel",{passive:!1}],[d,"contextmenu",void 0],[window,"blur",void 0]];for(const[g,v,C]of this._listeners)T.addEventListener(g,v,g===document?this.handleWindowEvent:this.handleEvent,C)}destroy(){for(const[s,f,d]of this._listeners)T.removeEventListener(s,f,s===document?this.handleWindowEvent:this.handleEvent,d)}_addDefaultHandlers(s){const f=this._map,d=f.getCanvasContainer();this._add("mapEvent",new Ts(f,s));const g=f.boxZoom=new Ls(f,s);this._add("boxZoom",g),s.interactive&&s.boxZoom&&g.enable();const v=f.cooperativeGestures=new Dt(f,s.cooperativeGestures);this._add("cooperativeGestures",v),s.cooperativeGestures&&v.enable();const C=new Gy(f),L=new rg(f);f.doubleClickZoom=new Op(L,C),this._add("tapZoom",C),this._add("clickZoom",L),s.interactive&&s.doubleClickZoom&&f.doubleClickZoom.enable();const M=new ig;this._add("tapDragZoom",M);const R=f.touchPitch=new ng(f);this._add("touchPitch",R),s.interactive&&s.touchPitch&&f.touchPitch.enable(s.touchPitch);const V=Cu(s),U=Tu(s);f.dragRotate=new Ps(s,V,U),this._add("mouseRotate",V,["mousePitch"]),this._add("mousePitch",U,["mouseRotate"]),s.interactive&&s.dragRotate&&f.dragRotate.enable();const X=(({enable:ze,clickTolerance:fe})=>{const Me=new ta({checkCorrectEvent:Fe=>T.mouseButton(Fe)===0&&!Fe.ctrlKey});return new Iu({clickTolerance:fe,move:(Fe,Ue)=>({around:Ue,panDelta:Ue.sub(Fe)}),activateOnStart:!0,moveStateManager:Me,enable:ze,assignEvents:Uh})})(s),oe=new Qm(s,f);f.dragPan=new og(d,X,oe),this._add("mousePan",X),this._add("touchPan",oe,["touchZoom","touchRotate"]),s.interactive&&s.dragPan&&f.dragPan.enable(s.dragPan);const ie=new Np,ce=new tg;f.touchZoomRotate=new Mc(d,ce,ie,M),this._add("touchRotate",ie,["touchPan","touchZoom"]),this._add("touchZoom",ce,["touchPan","touchRotate"]),s.interactive&&s.touchZoomRotate&&f.touchZoomRotate.enable(s.touchZoomRotate);const ee=f.scrollZoom=new qh(f,()=>this._triggerRenderFrame());this._add("scrollZoom",ee,["mousePan"]),s.interactive&&s.scrollZoom&&f.scrollZoom.enable(s.scrollZoom);const Se=f.keyboard=new al(f);this._add("keyboard",Se),s.interactive&&s.keyboard&&f.keyboard.enable(),this._add("blockableMapEvent",new ea(f))}_add(s,f,d){this._handlers.push({handlerName:s,handler:f,allowed:d}),this._handlersById[s]=f}stop(s){if(!this._updatingCamera){for(const{handler:f}of this._handlers)f.reset();this._inertia.clear(),this._fireEvents({},{},s),this._changes=[]}}isActive(){for(const{handler:s}of this._handlers)if(s.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Ut(this._eventsInProgress)||this.isZooming()}_blockedByActive(s,f,d){for(const g in s)if(g!==d&&(!f||f.indexOf(g)<0))return!0;return!1}_getMapTouches(s){const f=[];for(const d of s)this._el.contains(d.target)&&f.push(d);return f}mergeHandlerResult(s,f,d,g,v){if(!d)return;l.e(s,d);const C={handlerName:g,originalEvent:d.originalEvent||v};d.zoomDelta!==void 0&&(f.zoom=C),d.panDelta!==void 0&&(f.drag=C),d.pitchDelta!==void 0&&(f.pitch=C),d.bearingDelta!==void 0&&(f.rotate=C)}_applyChanges(){const s={},f={},d={};for(const[g,v,C]of this._changes)g.panDelta&&(s.panDelta=(s.panDelta||new l.P(0,0))._add(g.panDelta)),g.zoomDelta&&(s.zoomDelta=(s.zoomDelta||0)+g.zoomDelta),g.bearingDelta&&(s.bearingDelta=(s.bearingDelta||0)+g.bearingDelta),g.pitchDelta&&(s.pitchDelta=(s.pitchDelta||0)+g.pitchDelta),g.around!==void 0&&(s.around=g.around),g.pinchAround!==void 0&&(s.pinchAround=g.pinchAround),g.noInertia&&(s.noInertia=g.noInertia),l.e(f,v),l.e(d,C);this._updateMapTransform(s,f,d),this._changes=[]}_updateMapTransform(s,f,d){const g=this._map,v=g._getTransformForUpdate(),C=g.terrain;if(!(Ac(s)||C&&this._terrainMovement))return this._fireEvents(f,d,!0);let{panDelta:L,zoomDelta:M,bearingDelta:R,pitchDelta:V,around:U,pinchAround:X}=s;X!==void 0&&(U=X),g._stop(!0),U=U||g.transform.centerPoint;const oe=v.pointLocation(L?U.sub(L):U);R&&(v.bearing+=R),V&&(v.pitch+=V),M&&(v.zoom+=M),C?this._terrainMovement||!f.drag&&!f.zoom?f.drag&&this._terrainMovement?v.center=v.pointLocation(v.centerPoint.sub(L)):v.setLocationAtPoint(oe,U):(this._terrainMovement=!0,this._map._elevationFreeze=!0,v.setLocationAtPoint(oe,U),this._map.once("moveend",()=>{this._map._elevationFreeze=!1,this._terrainMovement=!1,v.recalculateZoom(g.terrain)})):v.setLocationAtPoint(oe,U),g._applyUpdatedTransform(v),this._map._update(),s.noInertia||this._inertia.record(s),this._fireEvents(f,d,!0)}_fireEvents(s,f,d){const g=Ut(this._eventsInProgress),v=Ut(s),C={};for(const V in s){const{originalEvent:U}=s[V];this._eventsInProgress[V]||(C[`${V}start`]=U),this._eventsInProgress[V]=s[V]}!g&&v&&this._fireEvent("movestart",v.originalEvent);for(const V in C)this._fireEvent(V,C[V]);v&&this._fireEvent("move",v.originalEvent);for(const V in s){const{originalEvent:U}=s[V];this._fireEvent(V,U)}const L={};let M;for(const V in this._eventsInProgress){const{handlerName:U,originalEvent:X}=this._eventsInProgress[V];this._handlersById[U].isActive()||(delete this._eventsInProgress[V],M=f[U]||X,L[`${V}end`]=M)}for(const V in L)this._fireEvent(V,L[V]);const R=Ut(this._eventsInProgress);if(d&&(g||v)&&!R){this._updatingCamera=!0;const V=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),U=X=>X!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new $h("renderFrame",{timeStamp:s})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class Eo extends l.E{constructor(s,f){super(),this._renderFrameCallback=()=>{const d=Math.min((E.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(d)),d<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=s,this._bearingSnap=f.bearingSnap,this.on("moveend",()=>{delete this._requestedCameraState})}getCenter(){return new l.M(this.transform.center.lng,this.transform.center.lat)}setCenter(s,f){return this.jumpTo({center:s},f)}panBy(s,f,d){return s=l.P.convert(s).mult(-1),this.panTo(this.transform.center,l.e({offset:s},f),d)}panTo(s,f,d){return this.easeTo(l.e({center:s},f),d)}getZoom(){return this.transform.zoom}setZoom(s,f){return this.jumpTo({zoom:s},f),this}zoomTo(s,f,d){return this.easeTo(l.e({zoom:s},f),d)}zoomIn(s,f){return this.zoomTo(this.getZoom()+1,s,f),this}zoomOut(s,f){return this.zoomTo(this.getZoom()-1,s,f),this}getBearing(){return this.transform.bearing}setBearing(s,f){return this.jumpTo({bearing:s},f),this}getPadding(){return this.transform.padding}setPadding(s,f){return this.jumpTo({padding:s},f),this}rotateTo(s,f,d){return this.easeTo(l.e({bearing:s},f),d)}resetNorth(s,f){return this.rotateTo(0,l.e({duration:1e3},s),f),this}resetNorthPitch(s,f){return this.easeTo(l.e({bearing:0,pitch:0,duration:1e3},s),f),this}snapToNorth(s,f){return Math.abs(this.getBearing()){if(this._zooming&&(g.zoom=l.z.number(v,ee,Xe)),this._rotating&&(g.bearing=l.z.number(C,R,Xe)),this._pitching&&(g.pitch=l.z.number(L,V,Xe)),this._padding&&(g.interpolatePadding(M,U,Xe),oe=g.centerPoint.add(X)),this.terrain&&!s.freezeElevation&&this._updateElevation(Xe),Me)g.setLocationAtPoint(Me,Fe);else{const nt=g.zoomScale(g.zoom-v),tt=ee>v?Math.min(2,fe):Math.max(.5,fe),ut=Math.pow(tt,1-Xe),pt=g.unproject(Se.add(ze.mult(Xe*ut)).mult(nt));g.setLocationAtPoint(g.renderWorldCopies?pt.wrap():pt,oe)}this._applyUpdatedTransform(g),this._fireMoveEvents(f)},Xe=>{this.terrain&&this._finalizeElevation(),this._afterEase(f,Xe)},s),this}_prepareEase(s,f,d={}){this._moving=!0,f||d.moving||this.fire(new l.k("movestart",s)),this._zooming&&!d.zooming&&this.fire(new l.k("zoomstart",s)),this._rotating&&!d.rotating&&this.fire(new l.k("rotatestart",s)),this._pitching&&!d.pitching&&this.fire(new l.k("pitchstart",s))}_prepareElevation(s){this._elevationCenter=s,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(s,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(s){this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);const f=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(s<1&&f!==this._elevationTarget){const d=this._elevationTarget-this._elevationStart;this._elevationStart+=s*(d-(f-(d*s+this._elevationStart))/(1-s)),this._elevationTarget=f}this.transform.elevation=l.z.number(this._elevationStart,this._elevationTarget,s)}_finalizeElevation(){this._elevationFreeze=!1,this.transform.recalculateZoom(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_applyUpdatedTransform(s){if(!this.transformCameraUpdate)return;const f=s.clone(),{center:d,zoom:g,pitch:v,bearing:C,elevation:L}=this.transformCameraUpdate(f);d&&(f.center=d),g!==void 0&&(f.zoom=g),v!==void 0&&(f.pitch=v),C!==void 0&&(f.bearing=C),L!==void 0&&(f.elevation=L),this.transform.apply(f)}_fireMoveEvents(s){this.fire(new l.k("move",s)),this._zooming&&this.fire(new l.k("zoom",s)),this._rotating&&this.fire(new l.k("rotate",s)),this._pitching&&this.fire(new l.k("pitch",s))}_afterEase(s,f){if(this._easeId&&f&&this._easeId===f)return;delete this._easeId;const d=this._zooming,g=this._rotating,v=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,d&&this.fire(new l.k("zoomend",s)),g&&this.fire(new l.k("rotateend",s)),v&&this.fire(new l.k("pitchend",s)),this.fire(new l.k("moveend",s))}flyTo(s,f){var d;if(!s.essential&&E.prefersReducedMotion){const Ln=l.L(s,["center","zoom","bearing","pitch","around"]);return this.jumpTo(Ln,f)}this.stop(),s=l.e({offset:[0,0],speed:1.2,curve:1.42,easing:l.b7},s);const g=this._getTransformForUpdate(),v=this.getZoom(),C=this.getBearing(),L=this.getPitch(),M=this.getPadding(),R="bearing"in s?this._normalizeBearing(s.bearing,C):C,V="pitch"in s?+s.pitch:L,U="padding"in s?s.padding:g.padding,X=l.P.convert(s.offset);let oe=g.centerPoint.add(X);const ie=g.pointLocation(oe),{center:ce,zoom:ee}=g.getConstrained(l.M.convert(s.center||ie),(d=s.zoom)!==null&&d!==void 0?d:v);this._normalizeCenter(ce);const Se=g.zoomScale(ee-v),ze=g.project(ie),fe=g.project(ce).sub(ze);let Me=s.curve;const Fe=Math.max(g.width,g.height),Ue=Fe/Se,Xe=fe.mag();if("minZoom"in s){const Ln=l.ac(Math.min(s.minZoom,v,ee),g.minZoom,g.maxZoom),Qt=Fe/g.zoomScale(Ln-v);Me=Math.sqrt(Qt/Xe*2)}const nt=Me*Me;function tt(Ln){const Qt=(Ue*Ue-Fe*Fe+(Ln?-1:1)*nt*nt*Xe*Xe)/(2*(Ln?Ue:Fe)*nt*Xe);return Math.log(Math.sqrt(Qt*Qt+1)-Qt)}function ut(Ln){return(Math.exp(Ln)-Math.exp(-Ln))/2}function pt(Ln){return(Math.exp(Ln)+Math.exp(-Ln))/2}const cn=tt(!1);let mt=function(Ln){return pt(cn)/pt(cn+Me*Ln)},jt=function(Ln){return Fe*((pt(cn)*(ut(Qt=cn+Me*Ln)/pt(Qt))-ut(cn))/nt)/Xe;var Qt},hn=(tt(!0)-cn)/Me;if(Math.abs(Xe)<1e-6||!isFinite(hn)){if(Math.abs(Fe-Ue)<1e-6)return this.easeTo(s,f);const Ln=Ues.maxDuration&&(s.duration=0),this._zooming=!0,this._rotating=C!==R,this._pitching=V!==L,this._padding=!g.isPaddingEqual(U),this._prepareEase(f,!1),this.terrain&&this._prepareElevation(ce),this._ease(Ln=>{const Qt=Ln*hn,dn=1/mt(Qt);g.zoom=Ln===1?ee:v+g.scaleZoom(dn),this._rotating&&(g.bearing=l.z.number(C,R,Ln)),this._pitching&&(g.pitch=l.z.number(L,V,Ln)),this._padding&&(g.interpolatePadding(M,U,Ln),oe=g.centerPoint.add(X)),this.terrain&&!s.freezeElevation&&this._updateElevation(Ln);const yn=Ln===1?ce:g.unproject(ze.add(fe.mult(jt(Qt))).mult(dn));g.setLocationAtPoint(g.renderWorldCopies?yn.wrap():yn,oe),this._applyUpdatedTransform(g),this._fireMoveEvents(f)},()=>{this.terrain&&this._finalizeElevation(),this._afterEase(f)},s),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(s,f){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const d=this._onEaseEnd;delete this._onEaseEnd,d.call(this,f)}if(!s){const d=this.handlers;d&&d.stop(!1)}return this}_ease(s,f,d){d.animate===!1||d.duration===0?(s(1),f()):(this._easeStart=E.now(),this._easeOptions=d,this._onEaseFrame=s,this._onEaseEnd=f,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(s,f){s=l.b1(s,-180,180);const d=Math.abs(s-f);return Math.abs(s-360-f)180?-360:d<-180?360:0}queryTerrainElevation(s){return this.terrain?this.terrain.getElevationForLngLatZoom(l.M.convert(s),this.transform.tileZoom)-this.transform.elevation:null}}const Fp={compact:!0,customAttribution:'MapLibre'};class Ms{constructor(s=Fp){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=f=>{!f||f.sourceDataType!=="metadata"&&f.sourceDataType!=="visibility"&&f.dataType!=="style"&&f.type!=="terrain"||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=s}getDefaultPosition(){return"bottom-right"}onAdd(s){return this._map=s,this._compact=this.options.compact,this._container=T.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=T.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=T.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(){T.remove(this._container),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(s,f){const d=this._map._getUIString(`AttributionControl.${f}`);s.title=d,s.setAttribute("aria-label",d)}_updateAttributions(){if(!this._map.style)return;let s=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?s=s.concat(this.options.customAttribution.map(g=>typeof g!="string"?"":g)):typeof this.options.customAttribution=="string"&&s.push(this.options.customAttribution)),this._map.style.stylesheet){const g=this._map.style.stylesheet;this.styleOwner=g.owner,this.styleId=g.id}const f=this._map.style.sourceCaches;for(const g in f){const v=f[g];if(v.used||v.usedForTerrain){const C=v.getSource();C.attribution&&s.indexOf(C.attribution)<0&&s.push(C.attribution)}}s=s.filter(g=>String(g).trim()),s.sort((g,v)=>g.length-v.length),s=s.filter((g,v)=>{for(let C=v+1;C=0)return!1;return!0});const d=s.join(" | ");d!==this._attribHTML&&(this._attribHTML=d,s.length?(this._innerContainer.innerHTML=d,this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class sg{constructor(s={}){this._updateCompact=()=>{const f=this._container.children;if(f.length){const d=f[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&d.classList.add("maplibregl-compact"):d.classList.remove("maplibregl-compact")}},this.options=s}getDefaultPosition(){return"bottom-left"}onAdd(s){this._map=s,this._compact=this.options&&this.options.compact,this._container=T.create("div","maplibregl-ctrl");const f=T.create("a","maplibregl-ctrl-logo");return f.target="_blank",f.rel="noopener nofollow",f.href="https://maplibre.org/",f.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),f.setAttribute("rel","noopener nofollow"),this._container.appendChild(f),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){T.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class kc{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(s){const f=++this._id;return this._queue.push({callback:s,id:f,cancelled:!1}),f}remove(s){const f=this._currentlyRunning,d=f?this._queue.concat(f):this._queue;for(const g of d)if(g.id===s)return void(g.cancelled=!0)}run(s=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const f=this._currentlyRunning=this._queue;this._queue=[];for(const d of f)if(!d.cancelled&&(d.callback(s),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var Nr=l.X([{name:"a_pos3d",type:"Int16",components:3}]);class Hr extends l.E{constructor(s){super(),this.sourceCache=s,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.deltaZoom=1,s.usedForTerrain=!0,s.tileSize=this.tileSize*2**this.deltaZoom}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(s,f){this.sourceCache.update(s,f),this._renderableTilesKeys=[];const d={};for(const g of s.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:f}))d[g.key]=!0,this._renderableTilesKeys.push(g.key),this._tiles[g.key]||(g.posMatrix=new Float64Array(16),l.aN(g.posMatrix,0,l.W,0,l.W,0,1),this._tiles[g.key]=new as(g,this.tileSize));for(const g in this._tiles)d[g]||delete this._tiles[g]}freeRtt(s){for(const f in this._tiles){const d=this._tiles[f];(!s||d.tileID.equals(s)||d.tileID.isChildOf(s)||s.isChildOf(d.tileID))&&(d.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(s=>this.getTileByID(s))}getTileByID(s){return this._tiles[s]}getTerrainCoords(s){const f={};for(const d of this._renderableTilesKeys){const g=this._tiles[d].tileID;if(g.canonical.equals(s.canonical)){const v=s.clone();v.posMatrix=new Float64Array(16),l.aN(v.posMatrix,0,l.W,0,l.W,0,1),f[d]=v}else if(g.canonical.isChildOf(s.canonical)){const v=s.clone();v.posMatrix=new Float64Array(16);const C=g.canonical.z-s.canonical.z,L=g.canonical.x-(g.canonical.x>>C<>C<>C;l.aN(v.posMatrix,0,R,0,R,0,1),l.H(v.posMatrix,v.posMatrix,[-L*R,-M*R,0]),f[d]=v}else if(s.canonical.isChildOf(g.canonical)){const v=s.clone();v.posMatrix=new Float64Array(16);const C=s.canonical.z-g.canonical.z,L=s.canonical.x-(s.canonical.x>>C<>C<>C;l.aN(v.posMatrix,0,l.W,0,l.W,0,1),l.H(v.posMatrix,v.posMatrix,[L*R,M*R,0]),l.J(v.posMatrix,v.posMatrix,[1/2**C,1/2**C,0]),f[d]=v}}return f}getSourceTile(s,f){const d=this.sourceCache._source;let g=s.overscaledZ-this.deltaZoom;if(g>d.maxzoom&&(g=d.maxzoom),g=d.minzoom&&(!v||!v.dem);)v=this.sourceCache.getTileByID(s.scaledTo(g--).key);return v}tilesAfterTime(s=Date.now()){return Object.values(this._tiles).filter(f=>f.timeAdded>=s)}}class ag{constructor(s,f,d){this.painter=s,this.sourceCache=new Hr(f),this.options=d,this.exaggeration=typeof d.exaggeration=="number"?d.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(s,f,d,g=l.W){var v;if(!(f>=0&&f=0&&ds.canonical.z&&(s.canonical.z>=g?v=s.canonical.z-g:l.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const C=s.canonical.x-(s.canonical.x>>v<>v<>8<<4|v>>8,f[C+3]=0;const d=new l.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(f.buffer)),g=new me(s,d,s.gl.RGBA,{premultiply:!1});return g.bind(s.gl.NEAREST,s.gl.CLAMP_TO_EDGE),this._coordsTexture=g,g}pointCoordinate(s){this.painter.maybeDrawDepthAndCoords(!0);const f=new Uint8Array(4),d=this.painter.context,g=d.gl,v=Math.round(s.x*this.painter.pixelRatio/devicePixelRatio),C=Math.round(s.y*this.painter.pixelRatio/devicePixelRatio),L=Math.round(this.painter.height/devicePixelRatio);d.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),g.readPixels(v,L-C-1,1,1,g.RGBA,g.UNSIGNED_BYTE,f),d.bindFramebuffer.set(null);const M=f[0]+(f[2]>>4<<8),R=f[1]+((15&f[2])<<8),V=this.coordsIndex[255-f[3]],U=V&&this.sourceCache.getTileByID(V);if(!U)return null;const X=this._coordsTextureSize,oe=(1<s.id!==f),this._recentlyUsed.push(s.id)}stampObject(s){s.stamp=++this._stamp}getOrCreateFreeObject(){for(const f of this._recentlyUsed)if(!this._objects[f].inUse)return this._objects[f];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const s=this._createObject(this._objects.length);return this._objects.push(s),s}freeObject(s){s.inUse=!1}freeAllObjects(){for(const s of this._objects)this.freeObject(s)}isFull(){return!(this._objects.length!s.inUse)===!1}}const Aa={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class Bp{constructor(s,f){this.painter=s,this.terrain=f,this.pool=new Dc(s.context,30,f.sourceCache.tileSize*f.qualityFactor)}destruct(){this.pool.destruct()}getTexture(s){return this.pool.getObjectForId(s.rtt[this._stacks.length-1].id).texture}prepareForRender(s,f){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=s._order.filter(d=>!s._layers[d].isHidden(f)),this._coordsDescendingInv={};for(const d in s.sourceCaches){this._coordsDescendingInv[d]={};const g=s.sourceCaches[d].getVisibleCoordinates();for(const v of g){const C=this.terrain.sourceCache.getTerrainCoords(v);for(const L in C)this._coordsDescendingInv[d][L]||(this._coordsDescendingInv[d][L]=[]),this._coordsDescendingInv[d][L].push(C[L])}}this._coordsDescendingInvStr={};for(const d of s._order){const g=s._layers[d],v=g.source;if(Aa[g.type]&&!this._coordsDescendingInvStr[v]){this._coordsDescendingInvStr[v]={};for(const C in this._coordsDescendingInv[v])this._coordsDescendingInvStr[v][C]=this._coordsDescendingInv[v][C].map(L=>L.key).sort().join()}}for(const d of this._renderableTiles)for(const g in this._coordsDescendingInvStr){const v=this._coordsDescendingInvStr[g][d.tileID.key];v&&v!==d.rttCoords[g]&&(d.rtt=[])}}renderLayer(s){if(s.isHidden(this.painter.transform.zoom))return!1;const f=s.type,d=this.painter,g=this._renderableLayerIds[this._renderableLayerIds.length-1]===s.id;if(Aa[f]&&(this._prevType&&Aa[this._prevType]||this._stacks.push([]),this._prevType=f,this._stacks[this._stacks.length-1].push(s.id),!g))return!0;if(Aa[this._prevType]||Aa[f]&&g){this._prevType=f;const v=this._stacks.length-1,C=this._stacks[v]||[];for(const L of this._renderableTiles){if(this.pool.isFull()&&(Bh(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(L),L.rtt[v]){const R=this.pool.getObjectForId(L.rtt[v].id);if(R.stamp===L.rtt[v].stamp){this.pool.useObject(R);continue}}const M=this.pool.getOrCreateFreeObject();this.pool.useObject(M),this.pool.stampObject(M),L.rtt[v]={id:M.id,stamp:M.stamp},d.context.bindFramebuffer.set(M.fbo.framebuffer),d.context.clear({color:l.aO.transparent,stencil:0}),d.currentStencilSource=void 0;for(let R=0;R{y.touchstart=y.dragStart,y.touchmoveWindow=y.dragMove,y.touchend=y.dragEnd},Gp={showCompass:!0,showZoom:!0,visualizePitch:!1};class jp{constructor(s,f,d=!1){this.mousedown=C=>{this.startMouse(l.e({},C,{ctrlKey:!0,preventDefault:()=>C.preventDefault()}),T.mousePos(this.element,C)),T.addEventListener(window,"mousemove",this.mousemove),T.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=C=>{this.moveMouse(C,T.mousePos(this.element,C))},this.mouseup=C=>{this.mouseRotate.dragEnd(C),this.mousePitch&&this.mousePitch.dragEnd(C),this.offTemp()},this.touchstart=C=>{C.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=T.touchPos(this.element,C.targetTouches)[0],this.startTouch(C,this._startPos),T.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),T.addEventListener(window,"touchend",this.touchend))},this.touchmove=C=>{C.targetTouches.length!==1?this.reset():(this._lastPos=T.touchPos(this.element,C.targetTouches)[0],this.moveTouch(C,this._lastPos))},this.touchend=C=>{C.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),this.touchRotate.reset(),this.touchPitch&&this.touchPitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10;const g=s.dragRotate._mouseRotate.getClickTolerance(),v=s.dragRotate._mousePitch.getClickTolerance();this.element=f,this.mouseRotate=Cu({clickTolerance:g,enable:!0}),this.touchRotate=(({enable:C,clickTolerance:L,bearingDegreesPerPixelMoved:M=.8})=>{const R=new Et;return new Iu({clickTolerance:L,move:(V,U)=>({bearingDelta:(U.x-V.x)*M}),moveStateManager:R,enable:C,assignEvents:Wh})})({clickTolerance:g,enable:!0}),this.map=s,d&&(this.mousePitch=Tu({clickTolerance:v,enable:!0}),this.touchPitch=(({enable:C,clickTolerance:L,pitchDegreesPerPixelMoved:M=-.5})=>{const R=new Et;return new Iu({clickTolerance:L,move:(V,U)=>({pitchDelta:(U.y-V.y)*M}),moveStateManager:R,enable:C,assignEvents:Wh})})({clickTolerance:v,enable:!0})),T.addEventListener(f,"mousedown",this.mousedown),T.addEventListener(f,"touchstart",this.touchstart,{passive:!1}),T.addEventListener(f,"touchcancel",this.reset)}startMouse(s,f){this.mouseRotate.dragStart(s,f),this.mousePitch&&this.mousePitch.dragStart(s,f),T.disableDrag()}startTouch(s,f){this.touchRotate.dragStart(s,f),this.touchPitch&&this.touchPitch.dragStart(s,f),T.disableDrag()}moveMouse(s,f){const d=this.map,{bearingDelta:g}=this.mouseRotate.dragMove(s,f)||{};if(g&&d.setBearing(d.getBearing()+g),this.mousePitch){const{pitchDelta:v}=this.mousePitch.dragMove(s,f)||{};v&&d.setPitch(d.getPitch()+v)}}moveTouch(s,f){const d=this.map,{bearingDelta:g}=this.touchRotate.dragMove(s,f)||{};if(g&&d.setBearing(d.getBearing()+g),this.touchPitch){const{pitchDelta:v}=this.touchPitch.dragMove(s,f)||{};v&&d.setPitch(d.getPitch()+v)}}off(){const s=this.element;T.removeEventListener(s,"mousedown",this.mousedown),T.removeEventListener(s,"touchstart",this.touchstart,{passive:!1}),T.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),T.removeEventListener(window,"touchend",this.touchend),T.removeEventListener(s,"touchcancel",this.reset),this.offTemp()}offTemp(){T.enableDrag(),T.removeEventListener(window,"mousemove",this.mousemove),T.removeEventListener(window,"mouseup",this.mouseup),T.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),T.removeEventListener(window,"touchend",this.touchend)}}let ka;function Zh(y,s,f){const d=new l.M(y.lng,y.lat);if(y=new l.M(y.lng,y.lat),s){const g=new l.M(y.lng-360,y.lat),v=new l.M(y.lng+360,y.lat),C=f.locationPoint(y).distSqr(s);f.locationPoint(g).distSqr(s)180;){const g=f.locationPoint(y);if(g.x>=0&&g.y>=0&&g.x<=f.width&&g.y<=f.height)break;y.lng>f.center.lng?y.lng-=360:y.lng+=360}return y.lng!==d.lng&&f.locationPoint(y).y>f.height/2-f.getHorizon()?y:d}const Nc={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 Hh(y,s,f){const d=y.classList;for(const g in Nc)d.remove(`maplibregl-${f}-anchor-${g}`);d.add(`maplibregl-${f}-anchor-${s}`)}class Oc extends l.E{constructor(s){if(super(),this._onKeyPress=f=>{const d=f.code,g=f.charCode||f.keyCode;d!=="Space"&&d!=="Enter"&&g!==32&&g!==13||this.togglePopup()},this._onMapClick=f=>{const d=f.originalEvent.target,g=this._element;this._popup&&(d===g||g.contains(d))&&this.togglePopup()},this._update=f=>{var d;if(!this._map)return;const g=this._map.loaded()&&!this._map.isMoving();((f==null?void 0:f.type)==="terrain"||(f==null?void 0:f.type)==="render"&&!g)&&this._map.once("render",this._update),this._lngLat=this._map.transform.renderWorldCopies?Zh(this._lngLat,this._flatPos,this._map.transform):(d=this._lngLat)===null||d===void 0?void 0:d.wrap(),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationPoint(this._lngLat)._add(this._offset));let v="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?v=`rotateZ(${this._rotation}deg)`:this._rotationAlignment==="map"&&(v=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let C="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?C="rotateX(0deg)":this._pitchAlignment==="map"&&(C=`rotateX(${this._map.getPitch()}deg)`),f&&f.type!=="moveend"||(this._pos=this._pos.round()),T.setTransform(this._element,`${Nc[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${C} ${v}`),E.frameAsync(new AbortController).then(()=>{this._updateOpacity(f&&f.type==="moveend")}).catch(()=>{})},this._onMove=f=>{if(!this._isDragging){const d=this._clickTolerance||this._map._clickTolerance;this._isDragging=f.point.dist(this._pointerdownPos)>=d}this._isDragging&&(this._pos=f.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 l.k("dragstart"))),this.fire(new l.k("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 l.k("dragend")),this._state="inactive"},this._addDragHandler=f=>{this._element.contains(f.originalEvent.target)&&(f.preventDefault(),this._positionDelta=f.point.sub(this._pos).add(this._offset),this._pointerdownPos=f.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=s&&s.anchor||"center",this._color=s&&s.color||"#3FB1CE",this._scale=s&&s.scale||1,this._draggable=s&&s.draggable||!1,this._clickTolerance=s&&s.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=s&&s.rotation||0,this._rotationAlignment=s&&s.rotationAlignment||"auto",this._pitchAlignment=s&&s.pitchAlignment&&s.pitchAlignment!=="auto"?s.pitchAlignment:this._rotationAlignment,this.setOpacity(),this.setOpacity(s==null?void 0:s.opacity,s==null?void 0:s.opacityWhenCovered),s&&s.element)this._element=s.element,this._offset=l.P.convert(s&&s.offset||[0,0]);else{this._defaultMarker=!0,this._element=T.create("div"),this._element.setAttribute("aria-label","Map marker");const f=T.createNS("http://www.w3.org/2000/svg","svg"),d=41,g=27;f.setAttributeNS(null,"display","block"),f.setAttributeNS(null,"height",`${d}px`),f.setAttributeNS(null,"width",`${g}px`),f.setAttributeNS(null,"viewBox",`0 0 ${g} ${d}`);const v=T.createNS("http://www.w3.org/2000/svg","g");v.setAttributeNS(null,"stroke","none"),v.setAttributeNS(null,"stroke-width","1"),v.setAttributeNS(null,"fill","none"),v.setAttributeNS(null,"fill-rule","evenodd");const C=T.createNS("http://www.w3.org/2000/svg","g");C.setAttributeNS(null,"fill-rule","nonzero");const L=T.createNS("http://www.w3.org/2000/svg","g");L.setAttributeNS(null,"transform","translate(3.0, 29.0)"),L.setAttributeNS(null,"fill","#000000");const M=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];for(const Se of M){const ze=T.createNS("http://www.w3.org/2000/svg","ellipse");ze.setAttributeNS(null,"opacity","0.04"),ze.setAttributeNS(null,"cx","10.5"),ze.setAttributeNS(null,"cy","5.80029008"),ze.setAttributeNS(null,"rx",Se.rx),ze.setAttributeNS(null,"ry",Se.ry),L.appendChild(ze)}const R=T.createNS("http://www.w3.org/2000/svg","g");R.setAttributeNS(null,"fill",this._color);const V=T.createNS("http://www.w3.org/2000/svg","path");V.setAttributeNS(null,"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"),R.appendChild(V);const U=T.createNS("http://www.w3.org/2000/svg","g");U.setAttributeNS(null,"opacity","0.25"),U.setAttributeNS(null,"fill","#000000");const X=T.createNS("http://www.w3.org/2000/svg","path");X.setAttributeNS(null,"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"),U.appendChild(X);const oe=T.createNS("http://www.w3.org/2000/svg","g");oe.setAttributeNS(null,"transform","translate(6.0, 7.0)"),oe.setAttributeNS(null,"fill","#FFFFFF");const ie=T.createNS("http://www.w3.org/2000/svg","g");ie.setAttributeNS(null,"transform","translate(8.0, 8.0)");const ce=T.createNS("http://www.w3.org/2000/svg","circle");ce.setAttributeNS(null,"fill","#000000"),ce.setAttributeNS(null,"opacity","0.25"),ce.setAttributeNS(null,"cx","5.5"),ce.setAttributeNS(null,"cy","5.5"),ce.setAttributeNS(null,"r","5.4999962");const ee=T.createNS("http://www.w3.org/2000/svg","circle");ee.setAttributeNS(null,"fill","#FFFFFF"),ee.setAttributeNS(null,"cx","5.5"),ee.setAttributeNS(null,"cy","5.5"),ee.setAttributeNS(null,"r","5.4999962"),ie.appendChild(ce),ie.appendChild(ee),C.appendChild(L),C.appendChild(R),C.appendChild(U),C.appendChild(oe),C.appendChild(ie),f.appendChild(C),f.setAttributeNS(null,"height",d*this._scale+"px"),f.setAttributeNS(null,"width",g*this._scale+"px"),this._element.appendChild(f),this._offset=l.P.convert(s&&s.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",f=>{f.preventDefault()}),this._element.addEventListener("mousedown",f=>{f.preventDefault()}),Hh(this._element,this._anchor,"marker"),s&&s.className)for(const f of s.className.split(" "))this._element.classList.add(f);this._popup=null}addTo(s){return this.remove(),this._map=s,s.getCanvasContainer().appendChild(this._element),s.on("move",this._update),s.on("moveend",this._update),s.on("terrain",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",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),T.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(s){return this._lngLat=l.M.convert(s),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(s){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),s){if(!("offset"in s.options)){const g=Math.abs(13.5)/Math.SQRT2;s.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[g,-1*(38.1-13.5+g)],"bottom-right":[-g,-1*(38.1-13.5+g)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=s,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}getPopup(){return this._popup}togglePopup(){const s=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:s?(s.isOpen()?s.remove():(s.setLngLat(this._lngLat),s.addTo(this._map)),this):this}_updateOpacity(s=!1){var f,d;if(!(!((f=this._map)===null||f===void 0)&&f.terrain))return void(this._element.style.opacity!==this._opacity&&(this._element.style.opacity=this._opacity));if(s)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout(()=>{this._opacityTimeout=null},100)}const g=this._map,v=g.terrain.depthAtPoint(this._pos),C=g.terrain.getElevationForLngLatZoom(this._lngLat,g.transform.tileZoom);if(g.transform.lngLatToCameraDepth(this._lngLat,C)-v<.006)return void(this._element.style.opacity=this._opacity);const L=-this._offset.y/g.transform._pixelPerMeter,M=Math.sin(g.getPitch()*Math.PI/180)*L,R=g.terrain.depthAtPoint(new l.P(this._pos.x,this._pos.y-this._offset.y)),V=g.transform.lngLatToCameraDepth(this._lngLat,C+M)-R>.006;!((d=this._popup)===null||d===void 0)&&d.isOpen()&&V&&this._popup.remove(),this._element.style.opacity=V?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(s){return this._offset=l.P.convert(s),this._update(),this}addClassName(s){this._element.classList.add(s)}removeClassName(s){this._element.classList.remove(s)}toggleClassName(s){return this._element.classList.toggle(s)}setDraggable(s){return this._draggable=!!s,this._map&&(s?(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}isDraggable(){return this._draggable}setRotation(s){return this._rotation=s||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(s){return this._rotationAlignment=s||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(s){return this._pitchAlignment=s&&s!=="auto"?s:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(s,f){return s===void 0&&f===void 0&&(this._opacity="1",this._opacityWhenCovered="0.2"),s!==void 0&&(this._opacity=s),f!==void 0&&(this._opacityWhenCovered=f),this._map&&this._updateOpacity(!0),this}}const Xh={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let Pu=0,Gl=!1;const Yh={maxWidth:100,unit:"metric"};function Kh(y,s,f){const d=f&&f.maxWidth||100,g=y._container.clientHeight/2,v=y.unproject([0,g]),C=y.unproject([d,g]),L=v.distanceTo(C);if(f&&f.unit==="imperial"){const M=3.2808*L;M>5280?jl(s,d,M/5280,y._getUIString("ScaleControl.Miles")):jl(s,d,M,y._getUIString("ScaleControl.Feet"))}else f&&f.unit==="nautical"?jl(s,d,L/1852,y._getUIString("ScaleControl.NauticalMiles")):L>=1e3?jl(s,d,L/1e3,y._getUIString("ScaleControl.Kilometers")):jl(s,d,L,y._getUIString("ScaleControl.Meters"))}function jl(y,s,f,d){const g=function(v){const C=Math.pow(10,`${Math.floor(v)}`.length-1);let L=v/C;return L=L>=10?10:L>=5?5:L>=3?3:L>=2?2:L>=1?1:function(M){const R=Math.pow(10,Math.ceil(-Math.log(M)/Math.LN10));return Math.round(M*R)/R}(L),C*L}(f);y.style.width=s*(g/f)+"px",y.innerHTML=`${g} ${d}`}const qp={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1},$p=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Jh(y){if(y){if(typeof y=="number"){const s=Math.round(Math.abs(y)/Math.SQRT2);return{center:new l.P(0,0),top:new l.P(0,y),"top-left":new l.P(s,s),"top-right":new l.P(-s,s),bottom:new l.P(0,-y),"bottom-left":new l.P(s,-s),"bottom-right":new l.P(-s,-s),left:new l.P(y,0),right:new l.P(-y,0)}}if(y instanceof l.P||Array.isArray(y)){const s=l.P.convert(y);return{center:s,top:s,"top-left":s,"top-right":s,bottom:s,"bottom-left":s,"bottom-right":s,left:s,right:s}}return{center:l.P.convert(y.center||[0,0]),top:l.P.convert(y.top||[0,0]),"top-left":l.P.convert(y["top-left"]||[0,0]),"top-right":l.P.convert(y["top-right"]||[0,0]),bottom:l.P.convert(y.bottom||[0,0]),"bottom-left":l.P.convert(y["bottom-left"]||[0,0]),"bottom-right":l.P.convert(y["bottom-right"]||[0,0]),left:l.P.convert(y.left||[0,0]),right:l.P.convert(y.right||[0,0])}}return Jh(new l.P(0,0))}const lg=m;c.AJAXError=l.be,c.Evented=l.E,c.LngLat=l.M,c.MercatorCoordinate=l.Y,c.Point=l.P,c.addProtocol=l.bf,c.config=l.a,c.removeProtocol=l.bg,c.AttributionControl=Ms,c.BoxZoomHandler=Ls,c.CanvasSource=Is,c.CooperativeGesturesHandler=Dt,c.DoubleClickZoomHandler=Op,c.DragPanHandler=og,c.DragRotateHandler=Ps,c.EdgeInsets=Su,c.FullscreenControl=class extends l.E{constructor(y={}){super(),this._onFullscreenChange=()=>{var s;let f=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;!((s=f==null?void 0:f.shadowRoot)===null||s===void 0)&&s.fullscreenElement;)f=f.shadowRoot.fullscreenElement;f===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,y&&y.container&&(y.container instanceof HTMLElement?this._container=y.container:l.w("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(y){return this._map=y,this._container||(this._container=this._map.getContainer()),this._controlContainer=T.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){T.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const y=this._fullscreenButton=T.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);T.create("span","maplibregl-ctrl-icon",y).setAttribute("aria-hidden","true"),y.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const y=this._getTitle();this._fullscreenButton.setAttribute("aria-label",y),this._fullscreenButton.title=y}_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 l.k("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new l.k("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},c.GeoJSONSource=pi,c.GeolocateControl=class extends l.E{constructor(y){super(),this._onSuccess=s=>{if(this._map){if(this._isOutOfMapMaxBounds(s))return this._setErrorState(),this.fire(new l.k("outofmaxbounds",s)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=s,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 new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(s),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(s),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new l.k("geolocate",s)),this._finish()}},this._updateCamera=s=>{const f=new l.M(s.coords.longitude,s.coords.latitude),d=s.coords.accuracy,g=this._map.getBearing(),v=l.e({bearing:g},this.options.fitBoundsOptions),C=Ne.fromLngLat(f,d);this._map.fitBounds(C,v,{geolocateSource:!0})},this._updateMarker=s=>{if(s){const f=new l.M(s.coords.longitude,s.coords.latitude);this._accuracyCircleMarker.setLngLat(f).addTo(this._map),this._userLocationDotMarker.setLngLat(f).addTo(this._map),this._accuracy=s.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=s=>{if(this._map){if(this.options.trackUserLocation)if(s.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;const f=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=f,this._geolocateButton.setAttribute("aria-label",f),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(s.code===3&&Gl)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new l.k("error",s)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=s=>{if(this._map){if(this._container.addEventListener("contextmenu",f=>f.preventDefault()),this._geolocateButton=T.create("button","maplibregl-ctrl-geolocate",this._container),T.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",s===!1){l.w("Geolocation support is not available so the GeolocateControl will be disabled.");const f=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=f,this._geolocateButton.setAttribute("aria-label",f)}else{const f=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=f,this._geolocateButton.setAttribute("aria-label",f)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=T.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new Oc({element:this._dotElement}),this._circleElement=T.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Oc({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",()=>this.trigger()),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",f=>{f.geolocateSource||this._watchState!=="ACTIVE_LOCK"||f.originalEvent&&f.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new l.k("trackuserlocationend")))})}},this.options=l.e({},Xh,y)}onAdd(y){return this._map=y,this._container=T.create("div","maplibregl-ctrl maplibregl-ctrl-group"),function(){return l._(this,arguments,void 0,function*(s=!1){if(ka!==void 0&&!s)return ka;if(window.navigator.permissions===void 0)return ka=!!window.navigator.geolocation,ka;try{ka=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{ka=!!window.navigator.geolocation}return ka})}().then(s=>this._setupUI(s)),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(),T.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,Pu=0,Gl=!1}_isOutOfMapMaxBounds(y){const s=this._map.getMaxBounds(),f=y.coords;return s&&(f.longitudes.getEast()||f.latitudes.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":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){const y=this._map.getBounds(),s=y.getSouthEast(),f=y.getNorthEast(),d=s.distanceTo(f),g=Math.ceil(this._accuracy/(d/this._map._container.clientHeight)*2);this._circleElement.style.width=`${g}px`,this._circleElement.style.height=`${g}px`}trigger(){if(!this._setup)return l.w("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 l.k("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":Pu--,Gl=!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 l.k("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 l.k("trackuserlocationstart"));break;default:throw new 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 new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let y;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),Pu++,Pu>1?(y={maximumAge:6e5,timeout:0},Gl=!0):(y=this.options.positionOptions,Gl=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,y)}}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)}},c.Hash=kp,c.ImageSource=ar,c.KeyboardHandler=al,c.LngLatBounds=Ne,c.LogoControl=sg,c.Map=class extends Eo{constructor(y){if(l.bc.mark(l.bd.create),(y=l.e({},Rc,y)).minZoom!=null&&y.maxZoom!=null&&y.minZoom>y.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(y.minPitch!=null&&y.maxPitch!=null&&y.minPitch>y.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(y.minPitch!=null&&y.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(y.maxPitch!=null&&y.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(super(new Vh(y.minZoom,y.maxZoom,y.minPitch,y.maxPitch,y.renderWorldCopies),{bearingSnap:y.bearingSnap}),this._contextLost=s=>{s.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new l.k("webglcontextlost",{originalEvent:s}))},this._contextRestored=s=>{this._setupPainter(),this.resize(),this._update(),this.fire(new l.k("webglcontextrestored",{originalEvent:s}))},this._onMapScroll=s=>{if(s.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=y.interactive,this._maxTileCacheSize=y.maxTileCacheSize,this._maxTileCacheZoomLevels=y.maxTileCacheZoomLevels,this._failIfMajorPerformanceCaveat=y.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=y.preserveDrawingBuffer,this._antialias=y.antialias,this._trackResize=y.trackResize,this._bearingSnap=y.bearingSnap,this._refreshExpiredTiles=y.refreshExpiredTiles,this._fadeDuration=y.fadeDuration,this._crossSourceCollisions=y.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=y.collectResourceTiming,this._renderTaskQueue=new kc,this._controls=[],this._mapId=l.a3(),this._locale=l.e({},Vp,y.locale),this._clickTolerance=y.clickTolerance,this._overridePixelRatio=y.pixelRatio,this._maxCanvasSize=y.maxCanvasSize,this.transformCameraUpdate=y.transformCameraUpdate,this._imageQueueHandle=j.addThrottleControl(()=>this.isMoving()),this._requestManager=new Z(y.transformRequest),typeof y.container=="string"){if(this._container=document.getElementById(y.container),!this._container)throw new Error(`Container '${y.container}' not found.`)}else{if(!(y.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=y.container}if(y.maxBounds&&this.setMaxBounds(y.maxBounds),this._setupContainer(),this._setupPainter(),this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),this.on("terrain",()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)}),this.once("idle",()=>{this._idleTriggered=!0}),typeof window<"u"){addEventListener("online",this._onWindowOnline,!1);let s=!1;const f=Ap(d=>{this._trackResize&&!this._removed&&this.resize(d)._update()},50);this._resizeObserver=new ResizeObserver(d=>{s?f(d):s=!0}),this._resizeObserver.observe(this._container)}this.handlers=new zp(this,y),this._hash=y.hash&&new kp(typeof y.hash=="string"&&y.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:y.center,zoom:y.zoom,bearing:y.bearing,pitch:y.pitch}),y.bounds&&(this.resize(),this.fitBounds(y.bounds,l.e({},y.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=y.localIdeographFontFamily,this._validateStyle=y.validateStyle,y.style&&this.setStyle(y.style,{localIdeographFontFamily:y.localIdeographFontFamily}),y.attributionControl&&this.addControl(new Ms(typeof y.attributionControl=="boolean"?void 0:y.attributionControl)),y.maplibreLogo&&this.addControl(new sg,y.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",s=>{this._update(s.dataType==="style"),this.fire(new l.k(`${s.dataType}data`,s))}),this.on("dataloading",s=>{this.fire(new l.k(`${s.dataType}dataloading`,s))}),this.on("dataabort",s=>{this.fire(new l.k("sourcedataabort",s))})}_getMapId(){return this._mapId}addControl(y,s){if(s===void 0&&(s=y.getDefaultPosition?y.getDefaultPosition():"top-right"),!y||!y.onAdd)return this.fire(new l.j(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const f=y.onAdd(this);this._controls.push(y);const d=this._controlPositions[s];return s.indexOf("bottom")!==-1?d.insertBefore(f,d.firstChild):d.appendChild(f),this}removeControl(y){if(!y||!y.onRemove)return this.fire(new l.j(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const s=this._controls.indexOf(y);return s>-1&&this._controls.splice(s,1),y.onRemove(this),this}hasControl(y){return this._controls.indexOf(y)>-1}calculateCameraOptionsFromTo(y,s,f,d){return d==null&&this.terrain&&(d=this.terrain.getElevationForLngLatZoom(f,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(y,s,f,d)}resize(y){var s;const f=this._containerDimensions(),d=f[0],g=f[1],v=this._getClampedPixelRatio(d,g);if(this._resizeCanvas(d,g,v),this.painter.resize(d,g,v),this.painter.overLimit()){const L=this.painter.context.gl;this._maxCanvasSize=[L.drawingBufferWidth,L.drawingBufferHeight];const M=this._getClampedPixelRatio(d,g);this._resizeCanvas(d,g,M),this.painter.resize(d,g,M)}this.transform.resize(d,g),(s=this._requestedCameraState)===null||s===void 0||s.resize(d,g);const C=!this._moving;return C&&(this.stop(),this.fire(new l.k("movestart",y)).fire(new l.k("move",y))),this.fire(new l.k("resize",y)),C&&this.fire(new l.k("moveend",y)),this}_getClampedPixelRatio(y,s){const{0:f,1:d}=this._maxCanvasSize,g=this.getPixelRatio(),v=y*g,C=s*g;return Math.min(v>f?f/v:1,C>d?d/C:1)*g}getPixelRatio(){var y;return(y=this._overridePixelRatio)!==null&&y!==void 0?y:devicePixelRatio}setPixelRatio(y){this._overridePixelRatio=y,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(y){return this.transform.setMaxBounds(Ne.convert(y)),this._update()}setMinZoom(y){if((y=y??-2)>=-2&&y<=this.transform.maxZoom)return this.transform.minZoom=y,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=y,this._update(),this.getZoom()>y&&this.setZoom(y),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(y){if((y=y??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(y>=0&&y<=this.transform.maxPitch)return this.transform.minPitch=y,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(y>=this.transform.minPitch)return this.transform.maxPitch=y,this._update(),this.getPitch()>y&&this.setPitch(y),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(y){return this.transform.renderWorldCopies=y,this._update()}project(y){return this.transform.locationPoint(l.M.convert(y),this.style&&this.terrain)}unproject(y){return this.transform.pointLocation(l.P.convert(y),this.terrain)}isMoving(){var y;return this._moving||((y=this.handlers)===null||y===void 0?void 0:y.isMoving())}isZooming(){var y;return this._zooming||((y=this.handlers)===null||y===void 0?void 0:y.isZooming())}isRotating(){var y;return this._rotating||((y=this.handlers)===null||y===void 0?void 0:y.isRotating())}_createDelegatedListener(y,s,f){if(y==="mouseenter"||y==="mouseover"){let d=!1;return{layer:s,listener:f,delegates:{mousemove:v=>{const C=this.getLayer(s)?this.queryRenderedFeatures(v.point,{layers:[s]}):[];C.length?d||(d=!0,f.call(this,new So(y,this,v.originalEvent,{features:C}))):d=!1},mouseout:()=>{d=!1}}}}if(y==="mouseleave"||y==="mouseout"){let d=!1;return{layer:s,listener:f,delegates:{mousemove:C=>{(this.getLayer(s)?this.queryRenderedFeatures(C.point,{layers:[s]}):[]).length?d=!0:d&&(d=!1,f.call(this,new So(y,this,C.originalEvent)))},mouseout:C=>{d&&(d=!1,f.call(this,new So(y,this,C.originalEvent)))}}}}{const d=g=>{const v=this.getLayer(s)?this.queryRenderedFeatures(g.point,{layers:[s]}):[];v.length&&(g.features=v,f.call(this,g),delete g.features)};return{layer:s,listener:f,delegates:{[y]:d}}}}on(y,s,f){if(f===void 0)return super.on(y,s);const d=this._createDelegatedListener(y,s,f);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[y]=this._delegatedListeners[y]||[],this._delegatedListeners[y].push(d);for(const g in d.delegates)this.on(g,d.delegates[g]);return this}once(y,s,f){if(f===void 0)return super.once(y,s);const d=this._createDelegatedListener(y,s,f);for(const g in d.delegates)this.once(g,d.delegates[g]);return this}off(y,s,f){return f===void 0?super.off(y,s):(this._delegatedListeners&&this._delegatedListeners[y]&&(d=>{const g=this._delegatedListeners[y];for(let v=0;vthis._updateStyle(y,s));const f=this.style&&s.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!y)),y?(this.style=new Vo(this,s||{}),this.style.setEventedParent(this,{style:this.style}),typeof y=="string"?this.style.loadURL(y,s,f):this.style.loadJSON(y,s,f),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new Vo(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(y,s){if(typeof y=="string"){const f=this._requestManager.transformRequest(y,"Style");l.h(f,new AbortController).then(d=>{this._updateDiff(d.data,s)}).catch(d=>{d&&this.fire(new l.j(d))})}else typeof y=="object"&&this._updateDiff(y,s)}_updateDiff(y,s){try{this.style.setState(y,s)&&this._update(!0)}catch(f){l.w(`Unable to perform style diff: ${f.message||f.error||f}. Rebuilding the style from scratch.`),this._updateStyle(y,s)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():l.w("There is no style added to the map.")}addSource(y,s){return this._lazyInitEmptyStyle(),this.style.addSource(y,s),this._update(!0)}isSourceLoaded(y){const s=this.style&&this.style.sourceCaches[y];if(s!==void 0)return s.loaded();this.fire(new l.j(new Error(`There is no source with ID '${y}'`)))}setTerrain(y){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),y){const s=this.style.sourceCaches[y.source];if(!s)throw new Error(`cannot load terrain, because there exists no source with ID: ${y.source}`);this.terrain===null&&s.reload();for(const f in this.style._layers){const d=this.style._layers[f];d.type==="hillshade"&&d.source===y.source&&l.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new ag(this.painter,s,y),this.painter.renderToTexture=new Bp(this.painter,this.terrain),this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._terrainDataCallback=f=>{f.dataType==="style"?this.terrain.sourceCache.freeRtt():f.dataType==="source"&&f.tile&&(f.sourceId!==y.source||this._elevationFreeze||(this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.terrain.sourceCache.freeRtt(f.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform.minElevationForCurrentTile=0,this.transform.elevation=0;return this.fire(new l.k("terrain",{terrain:y})),this}getTerrain(){var y,s;return(s=(y=this.terrain)===null||y===void 0?void 0:y.options)!==null&&s!==void 0?s:null}areTilesLoaded(){const y=this.style&&this.style.sourceCaches;for(const s in y){const f=y[s]._tiles;for(const d in f){const g=f[d];if(g.state!=="loaded"&&g.state!=="errored")return!1}}return!0}removeSource(y){return this.style.removeSource(y),this._update(!0)}getSource(y){return this.style.getSource(y)}addImage(y,s,f={}){const{pixelRatio:d=1,sdf:g=!1,stretchX:v,stretchY:C,content:L}=f;if(this._lazyInitEmptyStyle(),!(s instanceof HTMLImageElement||l.b(s))){if(s.width===void 0||s.height===void 0)return this.fire(new l.j(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));{const{width:M,height:R,data:V}=s,U=s;return this.style.addImage(y,{data:new l.R({width:M,height:R},new Uint8Array(V)),pixelRatio:d,stretchX:v,stretchY:C,content:L,sdf:g,version:0,userImage:U}),U.onAdd&&U.onAdd(this,y),this}}{const{width:M,height:R,data:V}=E.getImageData(s);this.style.addImage(y,{data:new l.R({width:M,height:R},V),pixelRatio:d,stretchX:v,stretchY:C,content:L,sdf:g,version:0})}}updateImage(y,s){const f=this.style.getImage(y);if(!f)return this.fire(new l.j(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const d=s instanceof HTMLImageElement||l.b(s)?E.getImageData(s):s,{width:g,height:v,data:C}=d;if(g===void 0||v===void 0)return this.fire(new l.j(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(g!==f.data.width||v!==f.data.height)return this.fire(new l.j(new Error("The width and height of the updated image must be that same as the previous version of the image")));const L=!(s instanceof HTMLImageElement||l.b(s));return f.data.replace(C,L),this.style.updateImage(y,f),this}getImage(y){return this.style.getImage(y)}hasImage(y){return y?!!this.style.getImage(y):(this.fire(new l.j(new Error("Missing required image id"))),!1)}removeImage(y){this.style.removeImage(y)}loadImage(y){return j.getImage(this._requestManager.transformRequest(y,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(y,s){return this._lazyInitEmptyStyle(),this.style.addLayer(y,s),this._update(!0)}moveLayer(y,s){return this.style.moveLayer(y,s),this._update(!0)}removeLayer(y){return this.style.removeLayer(y),this._update(!0)}getLayer(y){return this.style.getLayer(y)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(y,s,f){return this.style.setLayerZoomRange(y,s,f),this._update(!0)}setFilter(y,s,f={}){return this.style.setFilter(y,s,f),this._update(!0)}getFilter(y){return this.style.getFilter(y)}setPaintProperty(y,s,f,d={}){return this.style.setPaintProperty(y,s,f,d),this._update(!0)}getPaintProperty(y,s){return this.style.getPaintProperty(y,s)}setLayoutProperty(y,s,f,d={}){return this.style.setLayoutProperty(y,s,f,d),this._update(!0)}getLayoutProperty(y,s){return this.style.getLayoutProperty(y,s)}setGlyphs(y,s={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(y,s),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(y,s,f={}){return this._lazyInitEmptyStyle(),this.style.addSprite(y,s,f,d=>{d||this._update(!0)}),this}removeSprite(y){return this._lazyInitEmptyStyle(),this.style.removeSprite(y),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(y,s={}){return this._lazyInitEmptyStyle(),this.style.setSprite(y,s,f=>{f||this._update(!0)}),this}setLight(y,s={}){return this._lazyInitEmptyStyle(),this.style.setLight(y,s),this._update(!0)}getLight(){return this.style.getLight()}setFeatureState(y,s){return this.style.setFeatureState(y,s),this._update()}removeFeatureState(y,s){return this.style.removeFeatureState(y,s),this._update()}getFeatureState(y){return this.style.getFeatureState(y)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let y=0,s=0;return this._container&&(y=this._container.clientWidth||400,s=this._container.clientHeight||300),[y,s]}_setupContainer(){const y=this._container;y.classList.add("maplibregl-map");const s=this._canvasContainer=T.create("div","maplibregl-canvas-container",y);this._interactive&&s.classList.add("maplibregl-interactive"),this._canvas=T.create("canvas","maplibregl-canvas",s),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map"),this._canvas.setAttribute("role","region");const f=this._containerDimensions(),d=this._getClampedPixelRatio(f[0],f[1]);this._resizeCanvas(f[0],f[1],d);const g=this._controlContainer=T.create("div","maplibregl-control-container",y),v=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(C=>{v[C]=T.create("div",`maplibregl-ctrl-${C} `,g)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(y,s,f){this._canvas.width=Math.floor(f*y),this._canvas.height=Math.floor(f*s),this._canvas.style.width=`${y}px`,this._canvas.style.height=`${s}px`}_setupPainter(){const y={alpha:!0,stencil:!0,depth:!0,failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1};let s=null;this._canvas.addEventListener("webglcontextcreationerror",d=>{s={requestedAttributes:y},d&&(s.statusMessage=d.statusMessage,s.type=d.type)},{once:!0});const f=this._canvas.getContext("webgl2",y)||this._canvas.getContext("webgl",y);if(!f){const d="Failed to initialize WebGL";throw s?(s.message=d,new Error(JSON.stringify(s))):new Error(d)}this.painter=new Hm(f,this.transform),A.testSupport(f)}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(y){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||y,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(y){return this._update(),this._renderTaskQueue.add(y)}_cancelRenderFrame(y){this._renderTaskQueue.remove(y)}_render(y){const s=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(y),this._removed)return;let f=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const g=this.transform.zoom,v=E.now();this.style.zoomHistory.update(g,v);const C=new l.a8(g,{now:v,fadeDuration:s,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),L=C.crossFadingFactor();L===1&&L===this._crossFadingFactor||(f=!0,this._crossFadingFactor=L),this.style.update(C)}this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._elevationFreeze||(this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.minElevationForCurrentTile=0,this.transform.elevation=0),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,s,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:s,showPadding:this.showPadding}),this.fire(new l.k("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,l.bc.mark(l.bd.load),this.fire(new l.k("load"))),this.style&&(this.style.hasTransitions()||f)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const d=this._sourcesDirty||this._styleDirty||this._placementDirty;return d||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new l.k("idle")),!this._loaded||this._fullyLoaded||d||(this._fullyLoaded=!0,l.bc.mark(l.bd.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var y;this._hash&&this._hash.remove();for(const f of this._controls)f.onRemove(this);this._controls=[],this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window<"u"&&removeEventListener("online",this._onWindowOnline,!1),j.removeThrottleControl(this._imageQueueHandle),(y=this._resizeObserver)===null||y===void 0||y.disconnect();const s=this.painter.context.gl.getExtension("WEBGL_lose_context");s&&s.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),T.remove(this._canvasContainer),T.remove(this._controlContainer),this._container.classList.remove("maplibregl-map"),l.bc.clearMetrics(),this._removed=!0,this.fire(new l.k("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,E.frameAsync(this._frameRequest).then(y=>{l.bc.frame(y),this._frameRequest=null,this._render(y)}).catch(()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(y){this._showTileBoundaries!==y&&(this._showTileBoundaries=y,this._update())}get showPadding(){return!!this._showPadding}set showPadding(y){this._showPadding!==y&&(this._showPadding=y,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(y){this._showCollisionBoxes!==y&&(this._showCollisionBoxes=y,y?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(y){this._showOverdrawInspector!==y&&(this._showOverdrawInspector=y,this._update())}get repaint(){return!!this._repaint}set repaint(y){this._repaint!==y&&(this._repaint=y,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(y){this._vertices=y,this._update()}get version(){return Up}getCameraTargetElevation(){return this.transform.elevation}},c.MapMouseEvent=So,c.MapTouchEvent=Qs,c.MapWheelEvent=Dp,c.Marker=Oc,c.NavigationControl=class{constructor(y){this._updateZoomButtons=()=>{const s=this._map.getZoom(),f=s===this._map.getMaxZoom(),d=s===this._map.getMinZoom();this._zoomInButton.disabled=f,this._zoomOutButton.disabled=d,this._zoomInButton.setAttribute("aria-disabled",f.toString()),this._zoomOutButton.setAttribute("aria-disabled",d.toString())},this._rotateCompassArrow=()=>{const s=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=s},this._setButtonTitle=(s,f)=>{const d=this._map._getUIString(`NavigationControl.${f}`);s.title=d,s.setAttribute("aria-label",d)},this.options=l.e({},Gp,y),this._container=T.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",s=>s.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",s=>this._map.zoomIn({},{originalEvent:s})),T.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",s=>this._map.zoomOut({},{originalEvent:s})),T.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",s=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:s}):this._map.resetNorth({},{originalEvent:s})}),this._compassIcon=T.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(y){return this._map=y,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new jp(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){T.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(y,s){const f=T.create("button",y,this._container);return f.type="button",f.addEventListener("click",s),f}},c.Popup=class extends l.E{constructor(y){super(),this.remove=()=>(this._content&&T.remove(this._content),this._container&&(T.remove(this._container),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("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),this._map._canvasContainer.classList.remove("maplibregl-track-pointer"),delete this._map,this.fire(new l.k("close"))),this),this._onMouseUp=s=>{this._update(s.point)},this._onMouseMove=s=>{this._update(s.point)},this._onDrag=s=>{this._update(s.point)},this._update=s=>{var f;if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=T.create("div","maplibregl-popup",this._map.getContainer()),this._tip=T.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const L of this.options.className.split(" "))this._container.classList.add(L);this._trackPointer&&this._container.classList.add("maplibregl-popup-track-pointer")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=this._map.transform.renderWorldCopies&&!this._trackPointer?Zh(this._lngLat,this._flatPos,this._map.transform):(f=this._lngLat)===null||f===void 0?void 0:f.wrap(),this._trackPointer&&!s)return;const d=this._flatPos=this._pos=this._trackPointer&&s?s:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&s?s:this._map.transform.locationPoint(this._lngLat));let g=this.options.anchor;const v=Jh(this.options.offset);if(!g){const L=this._container.offsetWidth,M=this._container.offsetHeight;let R;R=d.y+v.bottom.ythis._map.transform.height-M?["bottom"]:[],d.xthis._map.transform.width-L/2&&R.push("right"),g=R.length===0?"bottom":R.join("-")}let C=d.add(v[g]);this.options.subpixelPositioning||(C=C.round()),T.setTransform(this._container,`${Nc[g]} translate(${C.x}px,${C.y}px)`),Hh(this._container,g,"popup")},this._onClose=()=>{this.remove()},this.options=l.e(Object.create(qp),y)}addTo(y){return this._map&&this.remove(),this._map=y,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._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),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 l.k("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(y){return this._lngLat=l.M.convert(y),this._pos=null,this._flatPos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),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._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")),this}getElement(){return this._container}setText(y){return this.setDOMContent(document.createTextNode(y))}setHTML(y){const s=document.createDocumentFragment(),f=document.createElement("body");let d;for(f.innerHTML=y;d=f.firstChild,d;)s.appendChild(d);return this.setDOMContent(s)}getMaxWidth(){var y;return(y=this._container)===null||y===void 0?void 0:y.style.maxWidth}setMaxWidth(y){return this.options.maxWidth=y,this._update(),this}setDOMContent(y){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=T.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(y),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(y){this._container&&this._container.classList.add(y)}removeClassName(y){this._container&&this._container.classList.remove(y)}setOffset(y){return this.options.offset=y,this._update(),this}toggleClassName(y){if(this._container)return this._container.classList.toggle(y)}setSubpixelPositioning(y){this.options.subpixelPositioning=y}_createCloseButton(){this.options.closeButton&&(this._closeButton=T.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const y=this._container.querySelector($p);y&&y.focus()}},c.RasterDEMTileSource=wn,c.RasterTileSource=Be,c.ScaleControl=class{constructor(y){this._onMove=()=>{Kh(this._map,this._container,this.options)},this.setUnit=s=>{this.options.unit=s,Kh(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},Yh),y)}getDefaultPosition(){return"bottom-left"}onAdd(y){return this._map=y,this._container=T.create("div","maplibregl-ctrl maplibregl-ctrl-scale",y.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){T.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},c.ScrollZoomHandler=qh,c.Style=Vo,c.TerrainControl=class{constructor(y){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=y}onAdd(y){return this._map=y,this._container=T.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=T.create("button","maplibregl-ctrl-terrain",this._container),T.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(){T.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},c.TwoFingersTouchPitchHandler=ng,c.TwoFingersTouchRotateHandler=Np,c.TwoFingersTouchZoomHandler=tg,c.TwoFingersTouchZoomRotateHandler=Mc,c.VectorTileSource=Sr,c.VideoSource=Fo,c.addSourceType=(y,s)=>l._(void 0,void 0,void 0,function*(){if(tl(y))throw new Error(`A source type called "${y}" already exists.`);((f,d)=>{Ys[f]=d})(y,s)}),c.clearPrewarmedResources=function(){const y=Sn;y&&(y.isPreloaded()&&y.numActive()===1?(y.release(Ft),Sn=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()"))},c.getMaxParallelImageRequests=function(){return l.a.MAX_PARALLEL_IMAGE_REQUESTS},c.getRTLTextPluginStatus=function(){return st().getRTLTextPluginStatus()},c.getVersion=function(){return lg},c.getWorkerCount=function(){return Ht.workerCount},c.getWorkerUrl=function(){return l.a.WORKER_URL},c.importScriptInWorkers=function(y){return Yn().broadcast("IS",y)},c.prewarm=function(){or().acquire(Ft)},c.setMaxParallelImageRequests=function(y){l.a.MAX_PARALLEL_IMAGE_REQUESTS=y},c.setRTLTextPlugin=function(y,s){return st().setRTLTextPlugin(y,s)},c.setWorkerCount=function(y){Ht.workerCount=y},c.setWorkerUrl=function(y){l.a.WORKER_URL=y}});var a=n;return a})})(kE);var Q_=kE.exports;const Fs=l1(Q_),pf=[];function A0(t,e){return{subscribe:Gn(t,e).subscribe}}function Gn(t,e=Mt){let n;const r=new Set;function i(l){if(Zt(t,l)&&(t=l,n)){const m=!pf.length;for(const b of r)b[1](),pf.push(b,t);if(m){for(let b=0;b{r.delete(b),r.size===0&&n&&(n(),n=null)}}return{set:i,update:a,subscribe:c}}let Yt;const RE=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&RE.decode();let Cd=null;function Od(){return(Cd===null||Cd.byteLength===0)&&(Cd=new Uint8Array(Yt.memory.buffer)),Cd}function eu(t,e){return t=t>>>0,RE.decode(Od().subarray(t,t+e))}const tu=new Array(128).fill(void 0);tu.push(void 0,null,!0,!1);let zd=tu.length;function Fi(t){zd===tu.length&&tu.push(tu.length+1);const e=zd;return zd=tu[e],tu[e]=t,e}function Pn(t){return tu[t]}function YP(t){t<132||(tu[t]=zd,zd=t)}function Hg(t){const e=Pn(t);return YP(t),e}function k0(t){return t==null}let Td=null;function KP(){return(Td===null||Td.byteLength===0)&&(Td=new Float64Array(Yt.memory.buffer)),Td}let Ld=null;function Lr(){return(Ld===null||Ld.byteLength===0)&&(Ld=new Int32Array(Yt.memory.buffer)),Ld}let Gu=0;const Xg=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},JP=typeof Xg.encodeInto=="function"?function(t,e){return Xg.encodeInto(t,e)}:function(t,e){const n=Xg.encode(t);return e.set(n),{read:t.length,written:n.length}};function kg(t,e,n){if(n===void 0){const l=Xg.encode(t),m=e(l.length,1)>>>0;return Od().subarray(m,m+l.length).set(l),Gu=l.length,m}let r=t.length,i=e(r,1)>>>0;const a=Od();let c=0;for(;c127)break;a[i+c]=l}if(c!==r){c!==0&&(t=t.slice(c)),i=n(i,r,r=c+t.length*3,1)>>>0;const l=Od().subarray(i+c,i+r),m=JP(t,l);c+=m.written}return Gu=c,i}function cv(t){const e=typeof t;if(e=="number"||e=="boolean"||t==null)return`${t}`;if(e=="string")return`"${t}"`;if(e=="symbol"){const i=t.description;return i==null?"Symbol":`Symbol(${i})`}if(e=="function"){const i=t.name;return typeof i=="string"&&i.length>0?`Function(${i})`:"Function"}if(Array.isArray(t)){const i=t.length;let a="[";i>0&&(a+=cv(t[0]));for(let c=1;c1)r=n[1];else return toString.call(t);if(r=="Object")try{return"Object("+JSON.stringify(t)+")"}catch{return"Object"}return t instanceof Error?`${t.name}: ${t.message} +${t.stack}`:r}function QP(t,e){const n=e(t.length*1,1)>>>0;return Od().set(t,n/1),Gu=t.length,n}function D0(t,e){try{return t.apply(this,e)}catch(n){Yt.__wbindgen_exn_store(Fi(n))}}class u_{static __wrap(e){e=e>>>0;const n=Object.create(u_.prototype);return n.__wbg_ptr=e,n}__destroy_into_raw(){const e=this.__wbg_ptr;return this.__wbg_ptr=0,e}free(){const e=this.__destroy_into_raw();Yt.__wbg_jsroutesnapper_free(e)}constructor(e){try{const a=Yt.__wbindgen_add_to_stack_pointer(-16),c=QP(e,Yt.__wbindgen_malloc),l=Gu;Yt.jsroutesnapper_new(a,c,l);var n=Lr()[a/4+0],r=Lr()[a/4+1],i=Lr()[a/4+2];if(i)throw Hg(r);return u_.__wrap(n)}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}setRouteConfig(e){Yt.jsroutesnapper_setRouteConfig(this.__wbg_ptr,Fi(e))}setAreaMode(){Yt.jsroutesnapper_setAreaMode(this.__wbg_ptr)}getConfig(){let e,n;try{const a=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.jsroutesnapper_getConfig(a,this.__wbg_ptr);var r=Lr()[a/4+0],i=Lr()[a/4+1];return e=r,n=i,eu(r,i)}finally{Yt.__wbindgen_add_to_stack_pointer(16),Yt.__wbindgen_free(e,n,1)}}toFinalFeature(){try{const r=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.jsroutesnapper_toFinalFeature(r,this.__wbg_ptr);var e=Lr()[r/4+0],n=Lr()[r/4+1];let i;return e!==0&&(i=eu(e,n).slice(),Yt.__wbindgen_free(e,n*1)),i}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}renderGeojson(){let e,n;try{const a=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.jsroutesnapper_renderGeojson(a,this.__wbg_ptr);var r=Lr()[a/4+0],i=Lr()[a/4+1];return e=r,n=i,eu(r,i)}finally{Yt.__wbindgen_add_to_stack_pointer(16),Yt.__wbindgen_free(e,n,1)}}toggleSnapMode(){Yt.jsroutesnapper_toggleSnapMode(this.__wbg_ptr)}onMouseMove(e,n,r){return Yt.jsroutesnapper_onMouseMove(this.__wbg_ptr,e,n,r)!==0}onClick(){Yt.jsroutesnapper_onClick(this.__wbg_ptr)}onDragStart(){return Yt.jsroutesnapper_onDragStart(this.__wbg_ptr)!==0}onMouseUp(){return Yt.jsroutesnapper_onMouseUp(this.__wbg_ptr)!==0}clearState(){Yt.jsroutesnapper_clearState(this.__wbg_ptr)}editExisting(e){try{const i=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.jsroutesnapper_editExisting(i,this.__wbg_ptr,Fi(e));var n=Lr()[i/4+0],r=Lr()[i/4+1];if(r)throw Hg(n)}finally{Yt.__wbindgen_add_to_stack_pointer(16)}}debugRenderGraph(){let e,n;try{const a=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.jsroutesnapper_debugRenderGraph(a,this.__wbg_ptr);var r=Lr()[a/4+0],i=Lr()[a/4+1];return e=r,n=i,eu(r,i)}finally{Yt.__wbindgen_add_to_stack_pointer(16),Yt.__wbindgen_free(e,n,1)}}routeNameForWaypoints(e){let n,r;try{const S=Yt.__wbindgen_add_to_stack_pointer(-16);Yt.jsroutesnapper_routeNameForWaypoints(S,this.__wbg_ptr,Fi(e));var i=Lr()[S/4+0],a=Lr()[S/4+1],c=Lr()[S/4+2],l=Lr()[S/4+3],m=i,b=a;if(l)throw m=0,b=0,Hg(c);return n=m,r=b,eu(m,b)}finally{Yt.__wbindgen_add_to_stack_pointer(16),Yt.__wbindgen_free(n,r,1)}}addSnappedWaypoint(e,n){Yt.jsroutesnapper_addSnappedWaypoint(this.__wbg_ptr,e,n)}undo(){Yt.jsroutesnapper_undo(this.__wbg_ptr)}}async function eM(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(r){if(t.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",r);else throw r}const n=await t.arrayBuffer();return await WebAssembly.instantiate(n,e)}else{const n=await WebAssembly.instantiate(t,e);return n instanceof WebAssembly.Instance?{instance:n,module:t}:n}}function tM(){const t={};return t.wbg={},t.wbg.__wbindgen_string_new=function(e,n){const r=eu(e,n);return Fi(r)},t.wbg.__wbindgen_object_drop_ref=function(e){Hg(e)},t.wbg.__wbindgen_is_object=function(e){const n=Pn(e);return typeof n=="object"&&n!==null},t.wbg.__wbindgen_is_undefined=function(e){return Pn(e)===void 0},t.wbg.__wbindgen_in=function(e,n){return Pn(e)in Pn(n)},t.wbg.__wbindgen_boolean_get=function(e){const n=Pn(e);return typeof n=="boolean"?n?1:0:2},t.wbg.__wbindgen_number_get=function(e,n){const r=Pn(n),i=typeof r=="number"?r:void 0;KP()[e/8+1]=k0(i)?0:i,Lr()[e/4+0]=!k0(i)},t.wbg.__wbindgen_error_new=function(e,n){const r=new Error(eu(e,n));return Fi(r)},t.wbg.__wbindgen_object_clone_ref=function(e){const n=Pn(e);return Fi(n)},t.wbg.__wbindgen_jsval_loose_eq=function(e,n){return Pn(e)==Pn(n)},t.wbg.__wbindgen_string_get=function(e,n){const r=Pn(n),i=typeof r=="string"?r:void 0;var a=k0(i)?0:kg(i,Yt.__wbindgen_malloc,Yt.__wbindgen_realloc),c=Gu;Lr()[e/4+1]=c,Lr()[e/4+0]=a},t.wbg.__wbg_String_4370c5505c674d30=function(e,n){const r=String(Pn(n)),i=kg(r,Yt.__wbindgen_malloc,Yt.__wbindgen_realloc),a=Gu;Lr()[e/4+1]=a,Lr()[e/4+0]=i},t.wbg.__wbg_getwithrefkey_d1f0d12f1f1b63ea=function(e,n){const r=Pn(e)[Pn(n)];return Fi(r)},t.wbg.__wbg_new_abda76e883ba8a5f=function(){const e=new Error;return Fi(e)},t.wbg.__wbg_stack_658279fe44541cf6=function(e,n){const r=Pn(n).stack,i=kg(r,Yt.__wbindgen_malloc,Yt.__wbindgen_realloc),a=Gu;Lr()[e/4+1]=a,Lr()[e/4+0]=i},t.wbg.__wbg_error_f851667af71bcfc6=function(e,n){let r,i;try{r=e,i=n,console.error(eu(e,n))}finally{Yt.__wbindgen_free(r,i,1)}},t.wbg.__wbg_debug_9a6b3243fbbebb61=function(e){console.debug(Pn(e))},t.wbg.__wbg_error_788ae33f81d3b84b=function(e){console.error(Pn(e))},t.wbg.__wbg_info_2e30e8204b29d91d=function(e){console.info(Pn(e))},t.wbg.__wbg_log_1d3ae0273d8f4f8a=function(e){console.log(Pn(e))},t.wbg.__wbg_warn_d60e832f9882c1b2=function(e){console.warn(Pn(e))},t.wbg.__wbg_get_44be0491f933a435=function(e,n){const r=Pn(e)[n>>>0];return Fi(r)},t.wbg.__wbg_length_fff51ee6522a1a18=function(e){return Pn(e).length},t.wbg.__wbindgen_is_function=function(e){return typeof Pn(e)=="function"},t.wbg.__wbg_next_526fc47e980da008=function(e){const n=Pn(e).next;return Fi(n)},t.wbg.__wbg_next_ddb3312ca1c4e32a=function(){return D0(function(e){const n=Pn(e).next();return Fi(n)},arguments)},t.wbg.__wbg_done_5c1f01fb660d73b5=function(e){return Pn(e).done},t.wbg.__wbg_value_1695675138684bd5=function(e){const n=Pn(e).value;return Fi(n)},t.wbg.__wbg_iterator_97f0c81209c6c35a=function(){return Fi(Symbol.iterator)},t.wbg.__wbg_get_97b561fb56f034b5=function(){return D0(function(e,n){const r=Reflect.get(Pn(e),Pn(n));return Fi(r)},arguments)},t.wbg.__wbg_call_cb65541d95d71282=function(){return D0(function(e,n){const r=Pn(e).call(Pn(n));return Fi(r)},arguments)},t.wbg.__wbg_isArray_4c24b343cb13cfb1=function(e){return Array.isArray(Pn(e))},t.wbg.__wbg_instanceof_ArrayBuffer_39ac22089b74fddb=function(e){let n;try{n=Pn(e)instanceof ArrayBuffer}catch{n=!1}return n},t.wbg.__wbg_buffer_085ec1f694018c4f=function(e){const n=Pn(e).buffer;return Fi(n)},t.wbg.__wbg_new_8125e318e6245eed=function(e){const n=new Uint8Array(Pn(e));return Fi(n)},t.wbg.__wbg_set_5cf90238115182c3=function(e,n,r){Pn(e).set(Pn(n),r>>>0)},t.wbg.__wbg_length_72e2208bbc0efc61=function(e){return Pn(e).length},t.wbg.__wbg_instanceof_Uint8Array_d8d9cb2b8e8ac1d4=function(e){let n;try{n=Pn(e)instanceof Uint8Array}catch{n=!1}return n},t.wbg.__wbindgen_debug_string=function(e,n){const r=cv(Pn(n)),i=kg(r,Yt.__wbindgen_malloc,Yt.__wbindgen_realloc),a=Gu;Lr()[e/4+1]=a,Lr()[e/4+0]=i},t.wbg.__wbindgen_throw=function(e,n){throw new Error(eu(e,n))},t.wbg.__wbindgen_memory=function(){const e=Yt.memory;return Fi(e)},t}function nM(t,e){return Yt=t.exports,NE.__wbindgen_wasm_module=e,Td=null,Ld=null,Cd=null,Yt}async function NE(t){if(Yt!==void 0)return Yt;typeof t>"u"&&(t="/ltn/assets/route_snapper_bg.wasm");const e=tM();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));const{instance:n,module:r}=await eM(await t,e);return nM(n,r)}const rM=30;class iM{constructor(e,n,r,i,a){this.onMouseMove=c=>{if(!this.active)return;const l=[c.point.x-rM,c.point.y],m=this.map.unproject(c.point).distanceTo(this.map.unproject(l));this.inner.onMouseMove(c.lngLat.lng,c.lngLat.lat,m)&&(this.redraw(),this.dataUpdated())},this.onClick=()=>{this.active&&(this.inner.onClick(),this.redraw(),this.dataUpdated())},this.onDoubleClick=c=>{this.active&&(c.preventDefault(),this.inner.onClick(),this.finish())},this.onDragStart=()=>{this.active&&this.inner.onDragStart()&&this.map.dragPan.disable()},this.onMouseUp=()=>{this.active&&this.inner.onMouseUp()&&this.map.dragPan.enable()},this.onKeyDown=c=>{this.active&&c.key=="Escape"&&(c.stopPropagation(),this.cancel())},this.onKeyPress=c=>{this.active&&c.target.tagName!="INPUT"&&(c.key=="Enter"?(c.stopPropagation(),this.finish()):c.key=="s"||c.key=="S"?(c.stopPropagation(),this.inner.toggleSnapMode(),this.redraw()):c.key=="z"&&c.ctrlKey&&this.undo())},this.map=e,console.time("Deserialize and setup JsRouteSnapper"),this.inner=new u_(n),console.timeEnd("Deserialize and setup JsRouteSnapper"),this.active=!1,this.eventListenersSuccess=[],this.eventListenersUpdated=[],this.eventListenersFailure=[],this.routeToolGj=r,this.snapMode=i,this.undoLength=a,this.map.on("mousemove",this.onMouseMove),this.map.on("click",this.onClick),this.map.on("dblclick",this.onDoubleClick),this.map.on("dragstart",this.onDragStart),this.map.on("mouseup",this.onMouseUp),document.addEventListener("keydown",this.onKeyDown),document.addEventListener("keypress",this.onKeyPress)}tearDown(){this.map.off("mousemove",this.onMouseMove),this.map.off("click",this.onClick),this.map.off("dblclick",this.onDoubleClick),this.map.off("dragstart",this.onDragStart),this.map.off("mouseup",this.onMouseUp),document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("keypress",this.onKeyPress)}startRoute(){this.active||(this.active=!0,this.map.boxZoom.disable(),this.map.doubleClickZoom.disable())}startArea(){this.active||(this.inner.setAreaMode(),this.active=!0,this.map.boxZoom.disable(),this.map.doubleClickZoom.disable())}stop(){this.active=!1,this.inner.clearState(),this.redraw(),this.map.boxZoom.enable(),this.map.doubleClickZoom.enable()}editExistingRoute(e){this.active&&window.alert("Bug: editExistingRoute called when tool is already active"),e.properties.waypoints||(e.properties.waypoints=[{lon:e.geometry.coordinates[0][0],lat:e.geometry.coordinates[0][1],snapped:!0},{lon:e.geometry.coordinates[e.geometry.coordinates.length-1][0],lat:e.geometry.coordinates[e.geometry.coordinates.length-1][1],snapped:!0}]),this.startRoute(),this.inner.editExisting(e.properties.waypoints),this.redraw()}editExistingArea(e){this.active&&window.alert("Bug: editExistingArea called when tool is already active"),e.properties.waypoints||window.alert("Bug: editExistingArea called for a polygon not produced by the route-snapper"),this.startArea(),this.inner.editExisting(e.properties.waypoints),this.redraw()}addEventListenerSuccess(e){this.eventListenersSuccess.push(e)}addEventListenerUpdated(e){this.eventListenersUpdated.push(e)}addEventListenerFailure(e){this.eventListenersFailure.push(e)}clearEventListeners(){this.eventListenersSuccess=[],this.eventListenersUpdated=[],this.eventListenersFailure=[]}isActive(){return this.active}finish(){let e=this.inner.toFinalFeature();if(e)for(let n of this.eventListenersSuccess)n(JSON.parse(e));else for(let n of this.eventListenersFailure)n();this.stop()}cancel(){this.inner.clearState(),this.finish()}setRouteConfig(e){this.inner.setRouteConfig(e),this.redraw()}addSnappedWaypoint(e){this.inner.addSnappedWaypoint(e[0],e[1]),this.redraw()}undo(){this.inner.undo(),this.redraw()}toggleSnapMode(){this.inner.toggleSnapMode(),this.redraw()}redraw(){let e=JSON.parse(this.inner.renderGeojson());this.routeToolGj.set(e),this.map.getCanvas().style.cursor=e.cursor,this.snapMode.set(e.snap_mode),this.undoLength.set(e.undo_length)}dataUpdated(){let e=this.inner.toFinalFeature();if(e)for(let n of this.eventListenersUpdated)n(JSON.parse(e))}}const hv="MZEJTanw3WpxRvt7qDfo";let au=Gn(null),fv=Gn("dataviz"),$d=Gn(!window.matchMedia("(prefers-color-scheme: dark)").matches),c_=Gn(!1),Zu=Gn(""),h_=Gn(!0),pv=Gn(null),dv=Gn(null),mv=Gn(null),to=Gn(null),f_=Gn(null),gv=Gn(new Q_.LngLat(0,0)),_v=Gn(new Q_.LngLat(0,0)),qx=Gn(1),Bu=Gn(1),An=Gn({mode:"title"}),yv=Gn("walk_cycle_only"),$x=Gn(!1);function Wd(){let t=Va(Zu);t||window.alert("Autosave failed; no projectName set?!"),window.localStorage.setItem(t,Va(to).toSavefile())}function Wx(t){let e,n;return e=new a1({props:{$$slots:{default:[oM,({dialog:r})=>({3:r}),({dialog:r})=>r?8:0]},$$scope:{ctx:t}}}),e.$on("close",t[2]),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&24&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function oM(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D;function O(){return t[1](t[3])}return{c(){e=de("h1"),e.textContent="The Low-traffic neighbourhood (LTN) tool, v2",n=$e(),r=de("p"),r.innerHTML=`This is an experimental + version of the + A/B Street LTN tool + . Most parts of it do not work yet, and you should probably use the other version + of the tool instead.`,i=$e(),a=de("p"),a.textContent="To use this tool, you need to:",c=$e(),l=de("ol"),l.innerHTML=`

  • Choose your study area to analyze
  • Define one or more neighbourhood boundaries
  • Optionally, fix the basemap data on existing modal filters, turn + restrictions, one-ways, etc
  • Create one or more proposals with new modal filters, and explore their + effects
  • `,m=$e(),b=de("p"),b.innerHTML=`This tool is created by Dustin Carlino + and relies heavily on + OpenStreetMap + data.`,S=$e(),E=de("center"),T=de("button"),T.textContent="Start!"},m(z,G){be(z,e,G),be(z,n,G),be(z,r,G),be(z,i,G),be(z,a,G),be(z,c,G),be(z,l,G),be(z,m,G),be(z,b,G),be(z,S,G),be(z,E,G),se(E,T),A||(D=Lt(T,"click",O),A=!0)},p(z,G){t=z},d(z){z&&(ve(e),ve(n),ve(r),ve(i),ve(a),ve(c),ve(l),ve(m),ve(b),ve(S),ve(E)),A=!1,D()}}}function sM(t){let e,n,r=t[0]&&Wx(t);return{c(){r&&r.c(),e=zo()},m(i,a){r&&r.m(i,a),be(i,e,a),n=!0},p(i,[a]){i[0]?r?(r.p(i,a),a&1&&pe(r,1)):(r=Wx(i),r.c(),pe(r,1),r.m(e.parentNode,e)):r&&(qn(),xe(r,1,1,()=>{r=null}),$n())},i(i){n||(pe(r),n=!0)},o(i){xe(r),n=!1},d(i){i&&ve(e),r&&r.d(i)}}}function aM(t,e,n){let r;return St(t,h_,c=>n(0,r=c)),[r,c=>Mr(c).close(),()=>Kt(h_,r=!1,r)]}class lM extends nn{constructor(e){super(),tn(this,e,aM,sM,Zt,{})}}const uM="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAk0lEQVRIS+3U0Q2AIAwEUNjMUXQydRJH0zZB0wjGuwJfSsKfuWfO1hg6n9g5P3wPWKTSXe6EVstUNEjoloIVghAG0OxR7swgLEAjHoBCvACM1AAQUgJ0DL0nm67WwJom7XrBlhVl4arUAHYniuE1ABTuBeBwD0CFs4D92T12fp9v9iPrnJ8LBu0KC0Ch9qEfeK3sAPceHxk8hJ17AAAAAElFTkSuQmCC",Zx="/ltn/assets/logo_light-97f2d067.svg",Hx="/ltn/assets/logo_dark-ed08d841.svg";let cM=Date.now();function rp(t){return`${t}-${cM++}`}const u1=Symbol.for("svelte-maplibre");function ip(){return CP(u1)}function hM(t){let e=new WeakMap;return n=>{var c;let r=e.get(n.originalEvent);if(r!==void 0)return r;let a=(c=n.target.queryRenderedFeatures(n.point).find(l=>{var m;return(m=t.get(l.layer.id))==null?void 0:m.interactive}))==null?void 0:c.layer.id;return e.set(n.originalEvent,a),a}}function fM(){let t=new Map;return wE(u1,{map:Gn(null),source:A0(null),layer:A0(null),popupTarget:A0(null),cluster:Gn(),loadedImages:Gn(new Set),minzoom:Gn(0),maxzoom:Gn(24),layerEvent:Gn(null),layerInfo:t,eventTopMost:hM(t)})}function Xx(t){return{subscribe:t.subscribe}}function c1({key:t,setPopupTarget:e=!1,setCluster:n=!1,setMouseEvent:r=!1}){let i=ip(),a=Gn(null),c=Xx(a),l={...i,[t]:Xx(a)};if(e&&(l.popupTarget=c),r){let m=Gn(null);l.layerEvent=m,i.layerEvent=m}return n&&(l.cluster=Gn()),wE(u1,l),{...i,self:a}}function pM(){return c1({key:"source",setCluster:!0})}function dM(t=!0){return c1({key:"layer",setPopupTarget:t,setMouseEvent:t})}function mM(){return c1({key:"popupTarget",setPopupTarget:!0,setMouseEvent:!0})}function gM(t){return"layerType"in t&&t.layerType==="deckgl"}function Yx(t){let e;return n=>{if(n)for(let r in n){let i=e==null?void 0:e[r],a=n[r];i!==a&&t(r,a,i)}else if(e)for(let r in e)t(r,void 0,e[r]);e=n}}function _M(t,...e){let n=[t];for(let r of e)if(r)Array.isArray(r)&&r[0]===t?n.push(...r.slice(1)):n.push(r);else continue;if(n.length!==1)return n.length===2?n[1]:n}function yM(t){return t===!0?["has","point_count"]:t===!1?["!",["has","point_count"]]:void 0}function p_(t,e){return["case",["boolean",["feature-state","hover"],!1],e,t]}var d_=vM;function vM(t){var e,n,r;if(t){if(Array.isArray(t)){for(e=[],n=t.length,r=0;r{r=null}),$n())},i(i){n||(pe(r),n=!0)},o(i){xe(r),n=!1},d(i){i&&ve(e),r&&r.d(i)}}}function xM(t,e,n){let r,i,a,c,l,m,b,S,E,T,A,D,{$$slots:O={},$$scope:z}=e,{id:G=rp("layer")}=e,{source:F=void 0}=e,{sourceLayer:j=void 0}=e,{beforeId:Z=void 0}=e,{beforeLayerType:J=void 0}=e,{type:he}=e,{paint:re=void 0}=e,{layout:ye=void 0}=e,{filter:ae=void 0}=e,{applyToClusters:Ae=void 0}=e,{minzoom:me=void 0}=e,{maxzoom:Ee=void 0}=e,{manageHoverState:Qe=!1}=e,{hovered:Le=null}=e,{interactive:lt=!0}=e,{hoverCursor:Ke=void 0}=e,{eventsIfTopMost:it=!1}=e;const Rt=ic(),{map:Gt,source:Tt,self:zt,minzoom:Ft,maxzoom:Ht,eventTopMost:Dn,layerInfo:Sn}=dM();St(t,Gt,Ze=>n(31,E=Ze)),St(t,Tt,Ze=>n(32,T=Ze)),St(t,zt,Ze=>n(0,S=Ze)),St(t,Ft,Ze=>n(34,D=Ze)),St(t,Ht,Ze=>n(33,A=Ze)),ys(()=>{S&&E&&(Sn.delete(S),E==null||E.removeLayer(S))});let mn;function or(Ze){var Be,wn;if(!lt||!S||!E||it&&Dn(Ze)!==S)return;let Ne=Ze.features??[],It=(wn=(Be=Ne[0])==null?void 0:Be.properties)==null?void 0:wn.cluster_id,Sr={event:Ze,map:E,clusterId:It,layer:S,source:l,features:Ne};Rt(Ze.type,Sr)}function sr(Ze){var Be,wn;if(!lt||!S||!E||it&&Dn(Ze)!==S)return;Ke&&(E.getCanvas().style.cursor=Ke);let Ne=Ze.features??[];n(6,Le=Ne[0]??null);let It=(wn=(Be=Ne[0])==null?void 0:Be.properties)==null?void 0:wn.cluster_id;Rt("mouseenter",{event:Ze,map:E,clusterId:It,layer:S,source:l,features:Ne})}function Yn(Ze){var Be,wn,pi;if(!lt||!E)return;if(it&&Dn(Ze)!==S){n(6,Le=null),Qe&&mn!==void 0&&(E==null||E.setFeatureState({source:l,sourceLayer:j,id:mn},{hover:!1}),mn=void 0);return}E.getCanvas().style.cursor=Ke;let Ne=Ze.features??[],It=(wn=(Be=Ne[0])==null?void 0:Be.properties)==null?void 0:wn.cluster_id,Sr=(pi=Ne[0])==null?void 0:pi.id;Sr!==mn&&(Qe&&(mn!==void 0&&(E==null||E.setFeatureState({source:l,id:mn,sourceLayer:j},{hover:!1})),E==null||E.setFeatureState({source:l,id:Sr,sourceLayer:j},{hover:!0})),mn=Sr,n(6,Le=Ne[0]??null)),Rt("mousemove",{event:Ze,map:E,clusterId:It,layer:S,source:l,features:Ne})}function rt(Ze){if(!(!lt||!S||!E)){if(Ke&&(E.getCanvas().style.cursor=""),n(6,Le=null),Qe&&mn!==void 0){const Ne={source:l,id:mn,sourceLayer:j};E==null||E.setFeatureState(Ne,{hover:!1}),mn=void 0}Rt("mouseleave",{map:E,layer:S,source:l})}}let Jt=!0;function Xt(Ze){E&&(E.off("click",Ze,or),E.off("dblclick",Ze,or),E.off("contextmenu",Ze,or),E.off("mouseenter",Ze,sr),E.off("mousemove",Ze,Yn),E.off("mouseleave",Ze,rt))}return ys(()=>{E&&S&&Xt(S)}),t.$$set=Ze=>{"id"in Ze&&n(7,G=Ze.id),"source"in Ze&&n(8,F=Ze.source),"sourceLayer"in Ze&&n(9,j=Ze.sourceLayer),"beforeId"in Ze&&n(10,Z=Ze.beforeId),"beforeLayerType"in Ze&&n(11,J=Ze.beforeLayerType),"type"in Ze&&n(12,he=Ze.type),"paint"in Ze&&n(13,re=Ze.paint),"layout"in Ze&&n(14,ye=Ze.layout),"filter"in Ze&&n(15,ae=Ze.filter),"applyToClusters"in Ze&&n(16,Ae=Ze.applyToClusters),"minzoom"in Ze&&n(17,me=Ze.minzoom),"maxzoom"in Ze&&n(18,Ee=Ze.maxzoom),"manageHoverState"in Ze&&n(19,Qe=Ze.manageHoverState),"hovered"in Ze&&n(6,Le=Ze.hovered),"interactive"in Ze&&n(20,lt=Ze.interactive),"hoverCursor"in Ze&&n(21,Ke=Ze.hoverCursor),"eventsIfTopMost"in Ze&&n(22,it=Ze.eventsIfTopMost),"$$scope"in Ze&&n(35,z=Ze.$$scope)},t.$$.update=()=>{if(t.$$.dirty[0]&65536&&n(30,r=yM(Ae)),t.$$.dirty[0]&1073774592&&n(24,i=_M("all",r,ae)),t.$$.dirty[0]&131072|t.$$.dirty[1]&8&&n(26,a=me??D),t.$$.dirty[0]&262144|t.$$.dirty[1]&4&&n(25,c=Ee??A),t.$$.dirty[0]&256|t.$$.dirty[1]&2&&n(29,l=F||T),t.$$.dirty[0]&654343809|t.$$.dirty[1]&1&&E&&S!==G&&l){S&&(Xt(S),Sn.delete(S));let Ze=Z;if(!Z&&J){let Ne=E.getStyle().layers,It=typeof J=="function"?J:Be=>Be.type===J,Sr=Ne==null?void 0:Ne.find(It);Sr&&(Ze=Sr.id)}Kt(zt,S=G,S),E.addLayer(d_({id:S,type:he,source:l,"source-layer":j,filter:i,paint:re,layout:ye,minzoom:a,maxzoom:c}),Ze),n(23,Jt=!0),E.on("click",S,or),E.on("dblclick",S,or),E.on("contextmenu",S,or),E.on("mouseenter",S,sr),E.on("mousemove",S,Yn),E.on("mouseleave",S,rt)}t.$$.dirty[0]&1048577&&S&&Sn.set(S,{interactive:lt}),t.$$.dirty[0]&1|t.$$.dirty[1]&1&&n(28,m=S?Yx((Ze,Ne)=>E==null?void 0:E.setPaintProperty(S,Ze,Ne)):void 0),t.$$.dirty[0]&1|t.$$.dirty[1]&1&&n(27,b=S?Yx((Ze,Ne)=>E==null?void 0:E.setLayoutProperty(S,Ze,Ne)):void 0),t.$$.dirty[0]&268443648&&(m==null||m(re)),t.$$.dirty[0]&134234112&&(b==null||b(ye)),t.$$.dirty[0]&100663297|t.$$.dirty[1]&1&&S&&(E==null||E.setLayerZoomRange(S,a,c)),t.$$.dirty[0]&25165825|t.$$.dirty[1]&1&&S&&(Jt?n(23,Jt=!1):E==null||E.setFilter(S,i))},[S,Gt,Tt,zt,Ft,Ht,Le,G,F,j,Z,J,he,re,ye,ae,Ae,me,Ee,Qe,lt,Ke,it,Jt,i,c,a,b,m,l,r,E,T,A,D,z,O]}class ey extends nn{constructor(e){super(),tn(this,e,xM,bM,Zt,{id:7,source:8,sourceLayer:9,beforeId:10,beforeLayerType:11,type:12,paint:13,layout:14,filter:15,applyToClusters:16,minzoom:17,maxzoom:18,manageHoverState:19,hovered:6,interactive:20,hoverCursor:21,eventsIfTopMost:22},null,[-1,-1])}}function wM(t){let e;const n=t[16].default,r=ui(n,t,t[24],null);return{c(){r&&r.c()},m(i,a){r&&r.m(i,a),e=!0},p(i,a){r&&r.p&&(!e||a&16777216)&&hi(r,n,i,i[24],e?ci(n,i[24],a,null):fi(i[24]),null)},i(i){e||(pe(r,i),e=!0)},o(i){xe(r,i),e=!1},d(i){r&&r.d(i)}}}function SM(t){let e,n,r;function i(c){t[17](c)}let a={id:t[1],type:"circle",source:t[2],sourceLayer:t[3],beforeId:t[4],beforeLayerType:t[5],paint:t[6],layout:t[7],filter:t[8],applyToClusters:t[9],minzoom:t[10],maxzoom:t[11],hoverCursor:t[12],manageHoverState:t[13],eventsIfTopMost:t[14],interactive:t[15],$$slots:{default:[wM]},$$scope:{ctx:t}};return t[0]!==void 0&&(a.hovered=t[0]),e=new ey({props:a}),Vi.push(()=>Wc(e,"hovered",i)),e.$on("click",t[18]),e.$on("dblclick",t[19]),e.$on("contextmenu",t[20]),e.$on("mouseenter",t[21]),e.$on("mousemove",t[22]),e.$on("mouseleave",t[23]),{c(){We(e.$$.fragment)},m(c,l){je(e,c,l),r=!0},p(c,[l]){const m={};l&2&&(m.id=c[1]),l&4&&(m.source=c[2]),l&8&&(m.sourceLayer=c[3]),l&16&&(m.beforeId=c[4]),l&32&&(m.beforeLayerType=c[5]),l&64&&(m.paint=c[6]),l&128&&(m.layout=c[7]),l&256&&(m.filter=c[8]),l&512&&(m.applyToClusters=c[9]),l&1024&&(m.minzoom=c[10]),l&2048&&(m.maxzoom=c[11]),l&4096&&(m.hoverCursor=c[12]),l&8192&&(m.manageHoverState=c[13]),l&16384&&(m.eventsIfTopMost=c[14]),l&32768&&(m.interactive=c[15]),l&16777216&&(m.$$scope={dirty:l,ctx:c}),!n&&l&1&&(n=!0,m.hovered=c[0],$c(()=>n=!1)),e.$set(m)},i(c){r||(pe(e.$$.fragment,c),r=!0)},o(c){xe(e.$$.fragment,c),r=!1},d(c){qe(e,c)}}}function EM(t,e,n){let{$$slots:r={},$$scope:i}=e,{id:a=rp("circle")}=e,{source:c=void 0}=e,{sourceLayer:l=void 0}=e,{beforeId:m=void 0}=e,{beforeLayerType:b=void 0}=e,{paint:S}=e,{layout:E=void 0}=e,{filter:T=void 0}=e,{applyToClusters:A=void 0}=e,{minzoom:D=void 0}=e,{maxzoom:O=void 0}=e,{hoverCursor:z=void 0}=e,{manageHoverState:G=!1}=e,{hovered:F=null}=e,{eventsIfTopMost:j=!1}=e,{interactive:Z=!0}=e;function J(Ee){F=Ee,n(0,F)}function he(Ee){ir.call(this,t,Ee)}function re(Ee){ir.call(this,t,Ee)}function ye(Ee){ir.call(this,t,Ee)}function ae(Ee){ir.call(this,t,Ee)}function Ae(Ee){ir.call(this,t,Ee)}function me(Ee){ir.call(this,t,Ee)}return t.$$set=Ee=>{"id"in Ee&&n(1,a=Ee.id),"source"in Ee&&n(2,c=Ee.source),"sourceLayer"in Ee&&n(3,l=Ee.sourceLayer),"beforeId"in Ee&&n(4,m=Ee.beforeId),"beforeLayerType"in Ee&&n(5,b=Ee.beforeLayerType),"paint"in Ee&&n(6,S=Ee.paint),"layout"in Ee&&n(7,E=Ee.layout),"filter"in Ee&&n(8,T=Ee.filter),"applyToClusters"in Ee&&n(9,A=Ee.applyToClusters),"minzoom"in Ee&&n(10,D=Ee.minzoom),"maxzoom"in Ee&&n(11,O=Ee.maxzoom),"hoverCursor"in Ee&&n(12,z=Ee.hoverCursor),"manageHoverState"in Ee&&n(13,G=Ee.manageHoverState),"hovered"in Ee&&n(0,F=Ee.hovered),"eventsIfTopMost"in Ee&&n(14,j=Ee.eventsIfTopMost),"interactive"in Ee&&n(15,Z=Ee.interactive),"$$scope"in Ee&&n(24,i=Ee.$$scope)},[F,a,c,l,m,b,S,E,T,A,D,O,z,G,j,Z,r,J,he,re,ye,ae,Ae,me,i]}class mm extends nn{constructor(e){super(),tn(this,e,EM,SM,Zt,{id:1,source:2,sourceLayer:3,beforeId:4,beforeLayerType:5,paint:6,layout:7,filter:8,applyToClusters:9,minzoom:10,maxzoom:11,hoverCursor:12,manageHoverState:13,hovered:0,eventsIfTopMost:14,interactive:15})}}function IM(t){let e;const n=t[15].default,r=ui(n,t,t[23],null);return{c(){r&&r.c()},m(i,a){r&&r.m(i,a),e=!0},p(i,a){r&&r.p&&(!e||a&8388608)&&hi(r,n,i,i[23],e?ci(n,i[23],a,null):fi(i[23]),null)},i(i){e||(pe(r,i),e=!0)},o(i){xe(r,i),e=!1},d(i){r&&r.d(i)}}}function CM(t){let e,n,r;function i(c){t[16](c)}let a={id:t[1],type:"fill",source:t[2],sourceLayer:t[3],beforeId:t[4],beforeLayerType:t[5],paint:t[6],layout:t[7],filter:t[8],minzoom:t[9],maxzoom:t[10],hoverCursor:t[11],manageHoverState:t[12],eventsIfTopMost:t[13],interactive:t[14],$$slots:{default:[IM]},$$scope:{ctx:t}};return t[0]!==void 0&&(a.hovered=t[0]),e=new ey({props:a}),Vi.push(()=>Wc(e,"hovered",i)),e.$on("click",t[17]),e.$on("dblclick",t[18]),e.$on("contextmenu",t[19]),e.$on("mouseenter",t[20]),e.$on("mousemove",t[21]),e.$on("mouseleave",t[22]),{c(){We(e.$$.fragment)},m(c,l){je(e,c,l),r=!0},p(c,[l]){const m={};l&2&&(m.id=c[1]),l&4&&(m.source=c[2]),l&8&&(m.sourceLayer=c[3]),l&16&&(m.beforeId=c[4]),l&32&&(m.beforeLayerType=c[5]),l&64&&(m.paint=c[6]),l&128&&(m.layout=c[7]),l&256&&(m.filter=c[8]),l&512&&(m.minzoom=c[9]),l&1024&&(m.maxzoom=c[10]),l&2048&&(m.hoverCursor=c[11]),l&4096&&(m.manageHoverState=c[12]),l&8192&&(m.eventsIfTopMost=c[13]),l&16384&&(m.interactive=c[14]),l&8388608&&(m.$$scope={dirty:l,ctx:c}),!n&&l&1&&(n=!0,m.hovered=c[0],$c(()=>n=!1)),e.$set(m)},i(c){r||(pe(e.$$.fragment,c),r=!0)},o(c){xe(e.$$.fragment,c),r=!1},d(c){qe(e,c)}}}function TM(t,e,n){let{$$slots:r={},$$scope:i}=e,{id:a=rp("fill")}=e,{source:c=void 0}=e,{sourceLayer:l=void 0}=e,{beforeId:m=void 0}=e,{beforeLayerType:b=void 0}=e,{paint:S}=e,{layout:E=void 0}=e,{filter:T=void 0}=e,{minzoom:A=void 0}=e,{maxzoom:D=void 0}=e,{hoverCursor:O=void 0}=e,{manageHoverState:z=!1}=e,{hovered:G=null}=e,{eventsIfTopMost:F=!1}=e,{interactive:j=!0}=e;function Z(me){G=me,n(0,G)}function J(me){ir.call(this,t,me)}function he(me){ir.call(this,t,me)}function re(me){ir.call(this,t,me)}function ye(me){ir.call(this,t,me)}function ae(me){ir.call(this,t,me)}function Ae(me){ir.call(this,t,me)}return t.$$set=me=>{"id"in me&&n(1,a=me.id),"source"in me&&n(2,c=me.source),"sourceLayer"in me&&n(3,l=me.sourceLayer),"beforeId"in me&&n(4,m=me.beforeId),"beforeLayerType"in me&&n(5,b=me.beforeLayerType),"paint"in me&&n(6,S=me.paint),"layout"in me&&n(7,E=me.layout),"filter"in me&&n(8,T=me.filter),"minzoom"in me&&n(9,A=me.minzoom),"maxzoom"in me&&n(10,D=me.maxzoom),"hoverCursor"in me&&n(11,O=me.hoverCursor),"manageHoverState"in me&&n(12,z=me.manageHoverState),"hovered"in me&&n(0,G=me.hovered),"eventsIfTopMost"in me&&n(13,F=me.eventsIfTopMost),"interactive"in me&&n(14,j=me.interactive),"$$scope"in me&&n(23,i=me.$$scope)},[G,a,c,l,m,b,S,E,T,A,D,O,z,F,j,r,Z,J,he,re,ye,ae,Ae,i]}class oc extends nn{constructor(e){super(),tn(this,e,TM,CM,Zt,{id:1,source:2,sourceLayer:3,beforeId:4,beforeLayerType:5,paint:6,layout:7,filter:8,minzoom:9,maxzoom:10,hoverCursor:11,manageHoverState:12,hovered:0,eventsIfTopMost:13,interactive:14})}}function LM(t,e,n){let r;const{map:i}=ip();St(t,i,m=>n(4,r=m));let{position:a="top-left"}=e,{container:c=void 0}=e,l=null;return ys(()=>{r!=null&&r.loaded()&&l&&r.removeControl(l)}),t.$$set=m=>{"position"in m&&n(1,a=m.position),"container"in m&&n(2,c=m.container)},t.$$.update=()=>{if(t.$$.dirty&30&&r&&!l){let m;typeof c=="string"?m=document.querySelector(c)??void 0:m=c,n(3,l=new Fs.FullscreenControl({container:m})),r.addControl(l,a)}},[i,a,c,l,r]}class PM extends nn{constructor(e){super(),tn(this,e,LM,null,Zt,{position:1,container:2})}}function MM(t,e,n,r,i){let a=!1;t.getSource(e)&&(a=!0,t.removeSource(e));const c=()=>{r(e)&&(t.addSource(e,n),i())};if(a){const l=()=>{e&&(t.getSource(e)?setTimeout(l,1):c())};l()}else c()}function AM(t,e,n){TP().then(()=>{let r=Va(t);if(!r)return;r.getSource(e)===n&&r.removeSource(e)})}function Qx(t){let e=t[0],n,r,i=ew(t);return{c(){i.c(),n=zo()},m(a,c){i.m(a,c),be(a,n,c),r=!0},p(a,c){c&1&&Zt(e,e=a[0])?(qn(),xe(i,1,1,Mt),$n(),i=ew(a),i.c(),pe(i,1),i.m(n.parentNode,n)):i.p(a,c)},i(a){r||(pe(i),r=!0)},o(a){xe(i),r=!1},d(a){a&&ve(n),i.d(a)}}}function ew(t){let e;const n=t[15].default,r=ui(n,t,t[14],null);return{c(){r&&r.c()},m(i,a){r&&r.m(i,a),e=!0},p(i,a){r&&r.p&&(!e||a&16384)&&hi(r,n,i,i[14],e?ci(n,i[14],a,null):fi(i[14]),null)},i(i){e||(pe(r,i),e=!0)},o(i){xe(r,i),e=!1},d(i){r&&r.d(i)}}}function kM(t){let e,n,r=t[0]&&Qx(t);return{c(){r&&r.c(),e=zo()},m(i,a){r&&r.m(i,a),be(i,e,a),n=!0},p(i,[a]){i[0]?r?(r.p(i,a),a&1&&pe(r,1)):(r=Qx(i),r.c(),pe(r,1),r.m(e.parentNode,e)):r&&(qn(),xe(r,1,1,()=>{r=null}),$n())},i(i){n||(pe(r),n=!0)},o(i){xe(r),n=!1},d(i){i&&ve(e),r&&r.d(i)}}}function DM(t,e,n){let r,i,a,{$$slots:c={},$$scope:l}=e,{id:m=rp("geojson")}=e,{data:b}=e,{generateId:S=!1}=e,{promoteId:E=void 0}=e,{filter:T=void 0}=e,{lineMetrics:A=void 0}=e,{cluster:D=void 0}=e;const{map:O,cluster:z,self:G}=pM();St(t,O,Z=>n(13,i=Z)),St(t,z,Z=>n(16,a=Z)),St(t,G,Z=>n(0,r=Z));let F,j=!0;return ys(()=>{r&&F&&i&&(AM(O,r,F),Kt(G,r=null,r),n(11,F=void 0))}),t.$$set=Z=>{"id"in Z&&n(4,m=Z.id),"data"in Z&&n(5,b=Z.data),"generateId"in Z&&n(6,S=Z.generateId),"promoteId"in Z&&n(7,E=Z.promoteId),"filter"in Z&&n(8,T=Z.filter),"lineMetrics"in Z&&n(9,A=Z.lineMetrics),"cluster"in Z&&n(10,D=Z.cluster),"$$scope"in Z&&n(14,l=Z.$$scope)},t.$$.update=()=>{t.$$.dirty&1024&&Kt(z,a=D,a),t.$$.dirty&12273&&i&&r!==m&&(Kt(G,r=m,r),MM(i,r,d_({type:"geojson",data:b,filter:T,lineMetrics:A,generateId:S,promoteId:E,cluster:!!D,clusterMinPoints:D==null?void 0:D.minPoints,clusterMaxZoom:D==null?void 0:D.maxZoom,clusterRadius:D==null?void 0:D.radius,clusterProperties:D==null?void 0:D.properties}),Z=>i&&Z===r,()=>{r&&(n(11,F=i==null?void 0:i.getSource(r)),n(12,j=!0))})),t.$$.dirty&8208&&(i==null||i.on("style.load",()=>{n(11,F=i==null?void 0:i.getSource(m))})),t.$$.dirty&6176&&F&&(j?n(12,j=!1):F.setData(b)),t.$$.dirty&3072&&(F==null||F.setClusterOptions(d_({cluster:!!D,clusterMaxZoom:D==null?void 0:D.maxZoom,clusterRadius:D==null?void 0:D.radius})))},[r,O,z,G,m,b,S,E,T,A,D,F,j,i,l,c]}class Qo extends nn{constructor(e){super(),tn(this,e,DM,kM,Zt,{id:4,data:5,generateId:6,promoteId:7,filter:8,lineMetrics:9,cluster:10})}}function RM(t,e,n){let r;const{map:i}=ip();St(t,i,T=>n(8,r=T));let{position:a="top-left"}=e,{positionOptions:c=void 0}=e,{fitBoundsOptions:l=void 0}=e,{trackUserLocation:m=!1}=e,{showAccuracyCircle:b=!0}=e,{showUserLocation:S=!0}=e,E=null;return ys(()=>{r!=null&&r.loaded()&&E&&r.removeControl(E)}),t.$$set=T=>{"position"in T&&n(1,a=T.position),"positionOptions"in T&&n(2,c=T.positionOptions),"fitBoundsOptions"in T&&n(3,l=T.fitBoundsOptions),"trackUserLocation"in T&&n(4,m=T.trackUserLocation),"showAccuracyCircle"in T&&n(5,b=T.showAccuracyCircle),"showUserLocation"in T&&n(6,S=T.showUserLocation)},t.$$.update=()=>{t.$$.dirty&510&&r&&!E&&(n(7,E=new Fs.GeolocateControl({positionOptions:c,fitBoundsOptions:l,trackUserLocation:m,showAccuracyCircle:b,showUserLocation:S})),r.addControl(E,a))},[i,a,c,l,m,b,S,E,r]}class NM extends nn{constructor(e){super(),tn(this,e,RM,null,Zt,{position:1,positionOptions:2,fitBoundsOptions:3,trackUserLocation:4,showAccuracyCircle:5,showUserLocation:6})}}function OM(t){let e;const n=t[15].default,r=ui(n,t,t[23],null);return{c(){r&&r.c()},m(i,a){r&&r.m(i,a),e=!0},p(i,a){r&&r.p&&(!e||a&8388608)&&hi(r,n,i,i[23],e?ci(n,i[23],a,null):fi(i[23]),null)},i(i){e||(pe(r,i),e=!0)},o(i){xe(r,i),e=!1},d(i){r&&r.d(i)}}}function zM(t){let e,n,r;function i(c){t[16](c)}let a={id:t[1],type:"line",source:t[2],sourceLayer:t[3],beforeId:t[4],beforeLayerType:t[5],paint:t[6],layout:t[7],filter:t[8],minzoom:t[9],maxzoom:t[10],hoverCursor:t[11],manageHoverState:t[12],eventsIfTopMost:t[13],interactive:t[14],$$slots:{default:[OM]},$$scope:{ctx:t}};return t[0]!==void 0&&(a.hovered=t[0]),e=new ey({props:a}),Vi.push(()=>Wc(e,"hovered",i)),e.$on("click",t[17]),e.$on("dblclick",t[18]),e.$on("contextmenu",t[19]),e.$on("mouseenter",t[20]),e.$on("mousemove",t[21]),e.$on("mouseleave",t[22]),{c(){We(e.$$.fragment)},m(c,l){je(e,c,l),r=!0},p(c,[l]){const m={};l&2&&(m.id=c[1]),l&4&&(m.source=c[2]),l&8&&(m.sourceLayer=c[3]),l&16&&(m.beforeId=c[4]),l&32&&(m.beforeLayerType=c[5]),l&64&&(m.paint=c[6]),l&128&&(m.layout=c[7]),l&256&&(m.filter=c[8]),l&512&&(m.minzoom=c[9]),l&1024&&(m.maxzoom=c[10]),l&2048&&(m.hoverCursor=c[11]),l&4096&&(m.manageHoverState=c[12]),l&8192&&(m.eventsIfTopMost=c[13]),l&16384&&(m.interactive=c[14]),l&8388608&&(m.$$scope={dirty:l,ctx:c}),!n&&l&1&&(n=!0,m.hovered=c[0],$c(()=>n=!1)),e.$set(m)},i(c){r||(pe(e.$$.fragment,c),r=!0)},o(c){xe(e.$$.fragment,c),r=!1},d(c){qe(e,c)}}}function FM(t,e,n){let{$$slots:r={},$$scope:i}=e,{id:a=rp("line")}=e,{source:c=void 0}=e,{sourceLayer:l=void 0}=e,{beforeId:m=void 0}=e,{beforeLayerType:b=void 0}=e,{paint:S}=e,{layout:E=void 0}=e,{filter:T=void 0}=e,{minzoom:A=void 0}=e,{maxzoom:D=void 0}=e,{hoverCursor:O=void 0}=e,{manageHoverState:z=!1}=e,{hovered:G=null}=e,{eventsIfTopMost:F=!1}=e,{interactive:j=!0}=e;function Z(me){G=me,n(0,G)}function J(me){ir.call(this,t,me)}function he(me){ir.call(this,t,me)}function re(me){ir.call(this,t,me)}function ye(me){ir.call(this,t,me)}function ae(me){ir.call(this,t,me)}function Ae(me){ir.call(this,t,me)}return t.$$set=me=>{"id"in me&&n(1,a=me.id),"source"in me&&n(2,c=me.source),"sourceLayer"in me&&n(3,l=me.sourceLayer),"beforeId"in me&&n(4,m=me.beforeId),"beforeLayerType"in me&&n(5,b=me.beforeLayerType),"paint"in me&&n(6,S=me.paint),"layout"in me&&n(7,E=me.layout),"filter"in me&&n(8,T=me.filter),"minzoom"in me&&n(9,A=me.minzoom),"maxzoom"in me&&n(10,D=me.maxzoom),"hoverCursor"in me&&n(11,O=me.hoverCursor),"manageHoverState"in me&&n(12,z=me.manageHoverState),"hovered"in me&&n(0,G=me.hovered),"eventsIfTopMost"in me&&n(13,F=me.eventsIfTopMost),"interactive"in me&&n(14,j=me.interactive),"$$scope"in me&&n(23,i=me.$$scope)},[G,a,c,l,m,b,S,E,T,A,D,O,z,F,j,r,Z,J,he,re,ye,ae,Ae,i]}class sc extends nn{constructor(e){super(),tn(this,e,FM,zM,Zt,{id:1,source:2,sourceLayer:3,beforeId:4,beforeLayerType:5,paint:6,layout:7,filter:8,minzoom:9,maxzoom:10,hoverCursor:11,manageHoverState:12,hovered:0,eventsIfTopMost:13,interactive:14})}}function BM(t){let e=t.getCenter(),n=Math.round(t.getZoom()*100)/100,r=Math.ceil((n*Math.LN2+Math.log(512/360/.5))/Math.LN10),i=Math.pow(10,r),a=Math.round(e.lat*i)/i,c=Math.round(e.lng*i)/i,l=`${n}/${a}/${c}`,m=t.getBearing(),b=t.getPitch();return(m||b)&&(l+=`/${Math.round(m*10)/10}`),b&&(l+=`/${Math.round(b)}`),`#${l}`}function VM(t){return t.replace("#","").split("/").map(parseFloat)}var Dg=h1;function h1(t,e){return t===e||t!==t&&e!==e?!0:typeof t!=typeof e||{}.toString.call(t)!={}.toString.call(e)||t!==Object(t)||!t?!1:Array.isArray(t)?tw(t,e):{}.toString.call(t)=="[object Set]"?tw(Array.from(t),Array.from(e)):{}.toString.call(t)=="[object Object]"?GM(t,e):UM(t,e)}function UM(t,e){return t.toString()===e.toString()}function tw(t,e){var n=t.length;if(n!=e.length)return!1;for(var r=0;rn(6,r=S));let{position:a="top-left"}=e,{showCompass:c=!0}=e,{showZoom:l=!0}=e,{visualizePitch:m=!1}=e,b=null;return ys(()=>{r!=null&&r.loaded()&&b&&r.removeControl(b)}),t.$$set=S=>{"position"in S&&n(1,a=S.position),"showCompass"in S&&n(2,c=S.showCompass),"showZoom"in S&&n(3,l=S.showZoom),"visualizePitch"in S&&n(4,m=S.visualizePitch)},t.$$.update=()=>{t.$$.dirty&126&&r&&!b&&(n(5,b=new Fs.NavigationControl({showCompass:c,showZoom:l,visualizePitch:m})),r.addControl(b,a))},[i,a,c,l,m,b,r]}class qM extends nn{constructor(e){super(),tn(this,e,jM,null,Zt,{position:1,showCompass:2,showZoom:3,visualizePitch:4})}}function $M(t,e,n){let r;const{map:i}=ip();St(t,i,b=>n(5,r=b));let{position:a="bottom-left"}=e,{maxWidth:c=void 0}=e,{unit:l="metric"}=e,m=null;return ys(()=>{r!=null&&r.loaded()&&m&&r.removeControl(m)}),t.$$set=b=>{"position"in b&&n(1,a=b.position),"maxWidth"in b&&n(2,c=b.maxWidth),"unit"in b&&n(3,l=b.unit)},t.$$.update=()=>{t.$$.dirty&62&&r&&!m&&(n(4,m=new Fs.ScaleControl({maxWidth:c,unit:l})),r.addControl(m,a))},[i,a,c,l,m,r]}class WM extends nn{constructor(e){super(),tn(this,e,$M,null,Zt,{position:1,maxWidth:2,unit:3})}}const{window:ZM}=s1,HM=t=>({map:t[0]&8,loadedImages:t[0]&16,allImagesLoaded:t[0]&32}),nw=t=>({map:t[3],loadedImages:t[4],allImagesLoaded:t[5]});function rw(t){let e,n,r=t[2]&&iw(t);const i=t[38].default,a=ui(i,t,t[37],nw);return{c(){r&&r.c(),e=$e(),a&&a.c()},m(c,l){r&&r.m(c,l),be(c,e,l),a&&a.m(c,l),n=!0},p(c,l){c[2]?r?(r.p(c,l),l[0]&4&&pe(r,1)):(r=iw(c),r.c(),pe(r,1),r.m(e.parentNode,e)):r&&(qn(),xe(r,1,1,()=>{r=null}),$n()),a&&a.p&&(!n||l[0]&56|l[1]&64)&&hi(a,i,c,c[37],n?ci(i,c[37],l,HM):fi(c[37]),nw)},i(c){n||(pe(r),pe(a,c),n=!0)},o(c){xe(r),xe(a,c),n=!1},d(c){c&&ve(e),r&&r.d(c),a&&a.d(c)}}}function iw(t){let e,n,r,i,a,c,l,m;return e=new qM({props:{position:t[6]}}),r=new NM({props:{position:t[6],fitBoundsOptions:{maxZoom:12}}}),a=new PM({props:{position:t[6]}}),l=new WM({props:{position:t[6]}}),{c(){We(e.$$.fragment),n=$e(),We(r.$$.fragment),i=$e(),We(a.$$.fragment),c=$e(),We(l.$$.fragment)},m(b,S){je(e,b,S),be(b,n,S),je(r,b,S),be(b,i,S),je(a,b,S),be(b,c,S),je(l,b,S),m=!0},p(b,S){const E={};S[0]&64&&(E.position=b[6]),e.$set(E);const T={};S[0]&64&&(T.position=b[6]),r.$set(T);const A={};S[0]&64&&(A.position=b[6]),a.$set(A);const D={};S[0]&64&&(D.position=b[6]),l.$set(D)},i(b){m||(pe(e.$$.fragment,b),pe(r.$$.fragment,b),pe(a.$$.fragment,b),pe(l.$$.fragment,b),m=!0)},o(b){xe(e.$$.fragment,b),xe(r.$$.fragment,b),xe(a.$$.fragment,b),xe(l.$$.fragment,b),m=!1},d(b){b&&(ve(n),ve(i),ve(c)),qe(e,b),qe(r,b),qe(a,b),qe(l,b)}}}function XM(t){let e,n,r,i,a,c=t[3]&&t[0]&&rw(t);return{c(){e=de("div"),c&&c.c(),Ie(e,"class",n=a_(t[1])+" svelte-p00lfq"),Ie(e,"data-testid","map-container"),bl(e,"expand-map",!t[1])},m(l,m){be(l,e,m),c&&c.m(e,null),r=!0,i||(a=[Lt(ZM,"hashchange",t[10]),sv(t[9].call(null,e))],i=!0)},p(l,m){l[3]&&l[0]?c?(c.p(l,m),m[0]&9&&pe(c,1)):(c=rw(l),c.c(),pe(c,1),c.m(e,null)):c&&(qn(),xe(c,1,1,()=>{c=null}),$n()),(!r||m[0]&2&&n!==(n=a_(l[1])+" svelte-p00lfq"))&&Ie(e,"class",n),(!r||m[0]&2)&&bl(e,"expand-map",!l[1])},i(l){r||(pe(c),r=!0)},o(l){xe(c),r=!1},d(l){l&&ve(e),c&&c.d(),i=!1,ti(a)}}}function YM(t,e,n){let r,i,a,c,{$$slots:l={},$$scope:m}=e,{map:b=null}=e,{class:S=void 0}=e,{style:E}=e,{diffStyleUpdates:T=!1}=e,{center:A=void 0}=e,{zoom:D=void 0}=e,{pitch:O=0}=e,{bearing:z=0}=e,{bounds:G=void 0}=e,{hash:F=!1}=e,{loaded:j=!1}=e,{minZoom:Z=0}=e,{maxZoom:J=22}=e,{antialias:he=void 0}=e,{zoomOnDoubleClick:re=!0}=e,{locale:ye=void 0}=e,{interactive:ae=!0}=e,{attributionControl:Ae=!0}=e,{cooperativeGestures:me=!1}=e,{preserveDrawingBuffer:Ee=!1}=e,{maxBounds:Qe=void 0}=e,{images:Le=[]}=e,{standardControls:lt=!1}=e,{filterLayers:Ke=void 0}=e,{transformRequest:it=void 0}=e;const Rt=ic(),{map:Gt,loadedImages:Tt}=fM();St(t,Gt,rt=>n(3,a=rt)),St(t,Tt,rt=>n(4,c=rt));let zt=new Set;async function Ft(rt,Jt=!1){if(a&&!(!a.loaded()&&!Jt))if("url"in rt){zt.add(rt.id);try{let Xt=await a.loadImage(rt.url);a==null||a.addImage(rt.id,Xt.data,rt.options),c.add(rt.id),Tt.set(c)}catch(Xt){Rt("error",Xt)}finally{zt.delete(rt.id)}}else a.addImage(rt.id,rt.data,rt.options),c.add(rt.id),Tt.set(c)}let Ht,Dn,Sn,mn;function or(rt){return Yn(),Kt(Gt,a=new Fs.Map(d_({container:rt,style:E,locale:ye,center:A,zoom:D,pitch:O,bearing:z,minZoom:Z,maxZoom:J,antialias:he,interactive:ae,preserveDrawingBuffer:Ee,maxBounds:Qe,bounds:G,attributionControl:Ae,transformRequest:it,cooperativeGestures:me})),a),a.on("load",Jt=>{Jt.target.getContainer().setAttribute("data-testid","map"),Jt.target.getCanvas().setAttribute("data-testid","map-canvas"),n(0,j=!0),Rt("load",a)}),a.on("error",Jt=>Rt("error",{...Jt,map:a})),a.on("movestart",Jt=>Rt("movestart",{...Jt,map:a})),a.on("moveend",Jt=>{if(n(11,A=Jt.target.getCenter()),n(12,D=Jt.target.getZoom()),n(13,G=Jt.target.getBounds()),Rt("moveend",{...Jt,map:a}),F){let Xt=window.location.href.replace(/(#.+)?$/,BM(a));window.history.replaceState(window.history.state,"",Xt)}}),a.on("zoomstart",Jt=>Rt("zoomstart",{...Jt,map:a})),a.on("zoom",Jt=>{n(12,D=Jt.target.getZoom()),Rt("zoom",{...Jt,map:a})}),a.on("zoomend",Jt=>{n(12,D=Jt.target.getZoom()),Rt("zoomend",{...Jt,map:a})}),a.on("style.load",()=>{if(a){const Jt=a.getStyle();if(n(34,Ht=Jt.layers.map(Xt=>Xt.id)),n(35,Dn=Object.keys(Jt.sources)),mn)for(const[Xt,Ze]of Object.entries(mn))a.addSource(Xt,Ze);if(Sn)for(const Xt of Sn)a.addLayer(Xt);for(const Xt of Le)Ft(Xt,!0)}}),a.on("styledata",Jt=>{if(a&&Ke){const Xt=a.getStyle().layers;if(Xt)for(let Ze of Xt)Ke(Ze)||a.setLayoutProperty(Ze.id,"visibility","none")}Rt("styledata",{...Jt,map:a})}),{destroy(){n(0,j=!1),a==null||a.remove(),Kt(Gt,a=null,a)}}}let sr=E;function Yn(){if(F){let rt=VM(window.location.hash);rt.length>=3&&(n(12,D=rt[0]),n(11,A=[rt[2],rt[1]])),rt.length==5&&(n(16,z=rt[3]),n(15,O=rt[4]))}}return t.$$set=rt=>{"map"in rt&&n(14,b=rt.map),"class"in rt&&n(1,S=rt.class),"style"in rt&&n(17,E=rt.style),"diffStyleUpdates"in rt&&n(18,T=rt.diffStyleUpdates),"center"in rt&&n(11,A=rt.center),"zoom"in rt&&n(12,D=rt.zoom),"pitch"in rt&&n(15,O=rt.pitch),"bearing"in rt&&n(16,z=rt.bearing),"bounds"in rt&&n(13,G=rt.bounds),"hash"in rt&&n(19,F=rt.hash),"loaded"in rt&&n(0,j=rt.loaded),"minZoom"in rt&&n(20,Z=rt.minZoom),"maxZoom"in rt&&n(21,J=rt.maxZoom),"antialias"in rt&&n(22,he=rt.antialias),"zoomOnDoubleClick"in rt&&n(23,re=rt.zoomOnDoubleClick),"locale"in rt&&n(24,ye=rt.locale),"interactive"in rt&&n(25,ae=rt.interactive),"attributionControl"in rt&&n(26,Ae=rt.attributionControl),"cooperativeGestures"in rt&&n(27,me=rt.cooperativeGestures),"preserveDrawingBuffer"in rt&&n(28,Ee=rt.preserveDrawingBuffer),"maxBounds"in rt&&n(29,Qe=rt.maxBounds),"images"in rt&&n(30,Le=rt.images),"standardControls"in rt&&n(2,lt=rt.standardControls),"filterLayers"in rt&&n(31,Ke=rt.filterLayers),"transformRequest"in rt&&n(32,it=rt.transformRequest),"$$scope"in rt&&n(37,m=rt.$$scope)},t.$$.update=()=>{if(t.$$.dirty[0]&4&&n(6,r=typeof lt=="boolean"?void 0:lt),t.$$.dirty[0]&8&&n(14,b=a),t.$$.dirty[0]&393224|t.$$.dirty[1]&56&&a&&!Dg(E,sr)){const rt=a.getStyle();if(Ht&&(Sn=rt.layers.filter(Jt=>!Ht.includes(Jt.id))),Dn){const Jt=Object.keys(rt.sources).filter(Xt=>!Dn.includes(Xt));mn={};for(const Xt of Jt)mn[Xt]=rt.sources[Xt]}n(36,sr=E),a.setStyle(E,{diff:T}),Kt(Tt,c=new Set,c),n(33,zt=new Set)}if(t.$$.dirty[0]&1073741849|t.$$.dirty[1]&4&&j&&a!=null&&a.loaded())for(let rt of Le)!c.has(rt.id)&&!zt.has(rt.id)&&!a.hasImage(rt.id)&&Ft(rt);t.$$.dirty[0]&1073741840&&n(5,i=Le.every(rt=>c.has(rt.id))),t.$$.dirty[0]&2056&&A&&!Dg(A,a==null?void 0:a.getCenter())&&(a==null||a.panTo(A)),t.$$.dirty[0]&4104&&D&&!Dg(D,a==null?void 0:a.getZoom())&&(a==null||a.zoomTo(D)),t.$$.dirty[0]&8200&&G&&!Dg(G,a==null?void 0:a.getBounds())&&(a==null||a.fitBounds(G)),t.$$.dirty[0]&8388616&&(re?a==null||a.doubleClickZoom.enable():a==null||a.doubleClickZoom.disable())},[j,S,lt,a,c,i,r,Gt,Tt,or,Yn,A,D,G,b,O,z,E,T,F,Z,J,he,re,ye,ae,Ae,me,Ee,Qe,Le,Ke,it,zt,Ht,Dn,sr,m,l]}class KM extends nn{constructor(e){super(),tn(this,e,YM,XM,Zt,{map:14,class:1,style:17,diffStyleUpdates:18,center:11,zoom:12,pitch:15,bearing:16,bounds:13,hash:19,loaded:0,minZoom:20,maxZoom:21,antialias:22,zoomOnDoubleClick:23,locale:24,interactive:25,attributionControl:26,cooperativeGestures:27,preserveDrawingBuffer:28,maxBounds:29,images:30,standardControls:2,filterLayers:31,transformRequest:32},null,[-1,-1])}}function JM(t){let e,n,r,i,a,c,l;const m=t[18].default,b=ui(m,t,t[17],null);return{c(){e=de("div"),b&&b.c(),Ie(e,"tabindex",n=t[1]?0:void 0),Ie(e,"role",r=t[1]?"button":void 0),nr(e,"z-index",t[2])},m(S,E){be(S,e,E),b&&b.m(e,null),a=!0,c||(l=[sv(t[6].call(null,e)),sv(i=QM.call(null,e,t[0])),Lt(e,"click",t[19]),Lt(e,"dblclick",t[20]),Lt(e,"contextmenu",t[21]),Lt(e,"mouseenter",t[22]),Lt(e,"mouseleave",t[23]),Lt(e,"mousemove",t[24]),Lt(e,"keydown",t[7])],c=!0)},p(S,[E]){b&&b.p&&(!a||E&131072)&&hi(b,m,S,S[17],a?ci(m,S[17],E,null):fi(S[17]),null),(!a||E&2&&n!==(n=S[1]?0:void 0))&&Ie(e,"tabindex",n),(!a||E&2&&r!==(r=S[1]?"button":void 0))&&Ie(e,"role",r),i&&X_(i.update)&&E&1&&i.update.call(null,S[0]),E&4&&nr(e,"z-index",S[2])},i(S){a||(pe(b,S),a=!0)},o(S){xe(b,S),a=!1},d(S){S&&ve(e),b&&b.d(S),c=!1,ti(l)}}}function QM(t,e){const n=t.className;function r(i){i?t.className=`${n} ${i}`:t.className=n}return r(e),{update:r}}function eA(t,e,n){let r,i,a,{$$slots:c={},$$scope:l}=e,{lngLat:m}=e,{class:b=void 0}=e,{interactive:S=!0}=e,{asButton:E=!1}=e,{draggable:T=!1}=e,{feature:A=null}=e,{offset:D=void 0}=e,{zIndex:O=void 0}=e,{rotation:z=0}=e,{opacity:G=1}=e;const F=ic(),{map:j,layerEvent:Z,self:J}=mM();St(t,j,Ke=>n(26,a=Ke)),St(t,Z,Ke=>n(25,r=Ke)),St(t,J,Ke=>n(16,i=Ke));function he(Ke){Kt(J,i=new Fs.Marker({element:Ke,rotation:z,draggable:T,offset:D,opacity:G.toString()}).setLngLat(m).addTo(a),i);const it=()=>ae("dragstart"),Rt=()=>{re(),ae("drag")},Gt=()=>{re(),ae("dragend")};return T&&(i.on("dragstart",it),i.on("drag",Rt),i.on("dragend",Gt)),{destroy(){T&&(i==null||i.off("dragstart",it),i==null||i.off("drag",Rt),i==null||i.off("dragend",Gt)),i==null||i.remove()}}}function re(){let Ke=i==null?void 0:i.getLngLat();Ke&&(Array.isArray(m)?n(9,m=[Ke.lng,Ke.lat]):m&&"lon"in m?n(9,m={lon:Ke.lng,lat:Ke.lat}):n(9,m=Ke))}function ye(Ke){Ke.key===" "&&(Ke.preventDefault(),Ke.stopPropagation(),ae("click"))}function ae(Ke){if(!S)return;let it=i==null?void 0:i.getLngLat();if(!it)return;const Rt=[it.lng,it.lat];let Gt={map:a,marker:i,lngLat:Rt,features:[{type:"Feature",properties:(A==null?void 0:A.properties)??{},geometry:{type:"Point",coordinates:Rt}}]};Kt(Z,r={...Gt,layerType:"marker",type:Ke},r),F(Ke,Gt)}const Ae=()=>ae("click"),me=()=>ae("dblclick"),Ee=()=>ae("contextmenu"),Qe=Ke=>{ae("mouseenter")},Le=()=>{ae("mouseleave")},lt=()=>ae("mousemove");return t.$$set=Ke=>{"lngLat"in Ke&&n(9,m=Ke.lngLat),"class"in Ke&&n(0,b=Ke.class),"interactive"in Ke&&n(10,S=Ke.interactive),"asButton"in Ke&&n(1,E=Ke.asButton),"draggable"in Ke&&n(11,T=Ke.draggable),"feature"in Ke&&n(12,A=Ke.feature),"offset"in Ke&&n(13,D=Ke.offset),"zIndex"in Ke&&n(2,O=Ke.zIndex),"rotation"in Ke&&n(14,z=Ke.rotation),"opacity"in Ke&&n(15,G=Ke.opacity),"$$scope"in Ke&&n(17,l=Ke.$$scope)},t.$$.update=()=>{t.$$.dirty&66048&&(i==null||i.setLngLat(m)),t.$$.dirty&73728&&(i==null||i.setOffset(D??[0,0])),t.$$.dirty&81920&&(i==null||i.setRotation(z)),t.$$.dirty&98304&&(i==null||i.setOpacity(G.toString()))},[b,E,O,j,Z,J,he,ye,ae,m,S,T,A,D,z,G,i,l,c,Ae,me,Ee,Qe,Le,lt]}class ow extends nn{constructor(e){super(),tn(this,e,eA,JM,Zt,{lngLat:9,class:0,interactive:10,asButton:1,draggable:11,feature:12,offset:13,zIndex:2,rotation:14,opacity:15})}}const tA=t=>({features:t[0]&16,data:t[0]&16,map:t[0]&4,close:t[0]&1}),sw=t=>{var e;return{features:t[4],data:(e=t[4])==null?void 0:e[0],map:t[2],close:t[31]}};function aw(t){let e,n,r=(t[4]||t[3]instanceof Fs.Marker)&&lw(t);return{c(){e=de("div"),r&&r.c()},m(i,a){be(i,e,a),r&&r.m(e,null),t[32](e),n=!0},p(i,a){i[4]||i[3]instanceof Fs.Marker?r?(r.p(i,a),a[0]&24&&pe(r,1)):(r=lw(i),r.c(),pe(r,1),r.m(e,null)):r&&(qn(),xe(r,1,1,()=>{r=null}),$n())},i(i){n||(pe(r),n=!0)},o(i){xe(r),n=!1},d(i){i&&ve(e),r&&r.d(),t[32](null)}}}function lw(t){let e;const n=t[30].default,r=ui(n,t,t[29],sw);return{c(){r&&r.c()},m(i,a){r&&r.m(i,a),e=!0},p(i,a){r&&r.p&&(!e||a[0]&536870933)&&hi(r,n,i,i[29],e?ci(n,i[29],a,tA):fi(i[29]),sw)},i(i){e||(pe(r,i),e=!0)},o(i){xe(r,i),e=!1},d(i){r&&r.d(i)}}}function nA(t){let e,n,r=t[9].default&&aw(t);return{c(){r&&r.c(),e=zo()},m(i,a){r&&r.m(i,a),be(i,e,a),n=!0},p(i,a){i[9].default?r?(r.p(i,a),a[0]&512&&pe(r,1)):(r=aw(i),r.c(),pe(r,1),r.m(e.parentNode,e)):r&&(qn(),xe(r,1,1,()=>{r=null}),$n())},i(i){n||(pe(r),n=!0)},o(i){xe(r),n=!1},d(i){i&&ve(e),r&&r.d(i)}}}function rA(t,e,n){let r,i,a,c,l,m,{$$slots:b={},$$scope:S}=e;const E=bP(b);let{closeButton:T=void 0}=e,{closeOnClickOutside:A=!0}=e,{closeOnClickInside:D=!1}=e,{closeOnMove:O=!1}=e,{openOn:z="click"}=e,{openIfTopMost:G=!0}=e,{focusAfterOpen:F=!0}=e,{anchor:j=void 0}=e,{offset:Z=void 0}=e,{popupClass:J=void 0}=e,{maxWidth:he=void 0}=e,{lngLat:re=void 0}=e,{html:ye=void 0}=e,{open:ae=!1}=e;const Ae=ic(),{map:me,popupTarget:Ee,layerEvent:Qe,layer:Le,eventTopMost:lt}=ip();St(t,me,Ne=>n(2,a=Ne)),St(t,Ee,Ne=>n(3,l=Ne)),St(t,Qe,Ne=>n(28,c=Ne)),St(t,Le,Ne=>n(35,m=Ne));const Ke=["click","dblclick","contextmenu"];let it,Rt=!1,Gt;function Tt(){if(!it)return;let Ne=it.getElement();!Ne||Ne===Gt||(Gt=Ne,z==="hover"&&(Gt.style.pointerEvents="none"),Gt.addEventListener("mouseenter",()=>{n(24,Rt=!0)},{passive:!0}),Gt.addEventListener("mouseleave",()=>{n(24,Rt=!1)},{passive:!0}),Gt.addEventListener("click",()=>{D&&n(0,ae=!1)},{passive:!0}))}Y_(()=>{if(a)return a.on("click",rt),a.on("contextmenu",rt),typeof l=="string"&&(a.on("click",l,Dn),a.on("dblclick",l,Dn),a.on("contextmenu",l,Dn),a.on("mousemove",l,Yn),a.on("mouseleave",l,sr),a.on("touchstart",l,mn),a.on("touchend",l,or)),()=>{a!=null&&a.loaded()&&(it==null||it.remove(),a.off("click",rt),a.off("contextmenu",rt),l instanceof Fs.Marker?l.getPopup()===it&&l.setPopup(void 0):typeof l=="string"&&(a.off("click",l,Dn),a.off("dblclick",l,Dn),a.off("contextmenu",l,Dn),a.off("mousemove",l,Yn),a.off("mouseleave",l,sr),a.off("touchstart",l,mn),a.off("touchend",l,or)))}});function zt(Ne){return G?!("marker"in Ne)&&!gM(Ne)&<(Ne)!==m:!1}let Ft=null,Ht="normal";function Dn(Ne){Ne.type===z&&(zt(Ne)||("layerType"in Ne?Ne.layerType==="deckgl"?(n(10,re=Ne.coordinate),n(4,Ft=Ne.object?[Ne.object]:null)):(n(10,re=Ne.lngLat),n(4,Ft=Ne.features??[])):(n(10,re=Ne.lngLat),n(4,Ft=Ne.features??[])),setTimeout(()=>n(0,ae=!0))))}let Sn=null;function mn(Ne){Sn=Ne.point}function or(Ne){if(!Sn||z!=="hover")return;let It=Sn.dist(Ne.point);Sn=null,It<3&&(n(10,re=Ne.lngLat),n(4,Ft=Ne.features??[]),it.isOpen()?n(25,Ht="justOpened"):(n(25,Ht="opening"),n(0,ae=!0)))}function sr(Ne){z!=="hover"||Sn||Ht!=="normal"||(n(0,ae=!1),n(4,Ft=null))}function Yn(Ne){if(!(z!=="hover"||Sn||Ht!=="normal")){if(zt(Ne)){n(0,ae=!1),n(4,Ft=null);return}n(0,ae=!0),n(4,Ft=Ne.features??[]),n(10,re=Ne.lngLat)}}function rt(Ne){if(Ht==="justOpened"){n(25,Ht="normal");return}if(!A)return;let It=[Gt,l instanceof Fs.Marker?l==null?void 0:l.getElement():null];ae&&it.isOpen()&&!It.some(Sr=>Sr==null?void 0:Sr.contains(Ne.originalEvent.target))&&(Ne.type==="contextmenu"&&z==="contextmenu"||Ne.type!=="contextmenu")&&n(0,ae=!1)}ys(()=>{a&&(it!=null&&it.isOpen())&&it.remove()});let Jt;const Xt=()=>n(0,ae=!1);function Ze(Ne){Vi[Ne?"unshift":"push"](()=>{Jt=Ne,n(1,Jt)})}return t.$$set=Ne=>{"closeButton"in Ne&&n(11,T=Ne.closeButton),"closeOnClickOutside"in Ne&&n(12,A=Ne.closeOnClickOutside),"closeOnClickInside"in Ne&&n(13,D=Ne.closeOnClickInside),"closeOnMove"in Ne&&n(14,O=Ne.closeOnMove),"openOn"in Ne&&n(15,z=Ne.openOn),"openIfTopMost"in Ne&&n(16,G=Ne.openIfTopMost),"focusAfterOpen"in Ne&&n(17,F=Ne.focusAfterOpen),"anchor"in Ne&&n(18,j=Ne.anchor),"offset"in Ne&&n(19,Z=Ne.offset),"popupClass"in Ne&&n(20,J=Ne.popupClass),"maxWidth"in Ne&&n(21,he=Ne.maxWidth),"lngLat"in Ne&&n(10,re=Ne.lngLat),"html"in Ne&&n(22,ye=Ne.html),"open"in Ne&&n(0,ae=Ne.open),"$$scope"in Ne&&n(29,S=Ne.$$scope)},t.$$.update=()=>{if(t.$$.dirty[0]&14336&&n(27,r=T??(!A&&!D)),t.$$.dirty[0]&146685952&&(it||(n(23,it=new Fs.Popup({closeButton:r,closeOnClick:!1,closeOnMove:O,focusAfterOpen:F,maxWidth:he,className:J,anchor:j,offset:Z})),Gt=it.getElement(),it.on("open",()=>{n(0,ae=!0),Tt(),Ae("open",it)}),it.on("close",()=>{n(0,ae=!1),Ae("close",it)}),it.on("hover",()=>{Ae("hover",it)}))),t.$$.dirty[0]&8421384&&it&&l instanceof Fs.Marker&&(z==="click"?l.setPopup(it):l.getPopup()===it&&l.setPopup(void 0)),t.$$.dirty[0]&268468224&&Ke.includes(z)&&(c==null?void 0:c.type)===z&&(Dn(c),Kt(Qe,c=null,c)),t.$$.dirty[0]&268468224&&n(26,i=z==="hover"&&((c==null?void 0:c.type)==="mousemove"||(c==null?void 0:c.type)==="mouseenter")),t.$$.dirty[0]&352354304&&z==="hover"&&Qe&&(i&&c&&(c.layerType==="deckgl"?(n(10,re=c.coordinate),n(4,Ft=c.object?[c.object]:null)):(n(10,re=c.lngLat),n(4,Ft=c.features??[]))),n(0,ae=(i||Rt)??!1)),t.$$.dirty[0]&12582914&&(Jt?it.setDOMContent(Jt):ye&&it.setHTML(ye)),t.$$.dirty[0]&8389632&&re&&it.setLngLat(re),t.$$.dirty[0]&41943045&&a){let Ne=it.isOpen();ae&&!Ne?(it.addTo(a),Ht==="opening"&&n(25,Ht="justOpened")):!ae&&Ne&&it.remove()}},[ae,Jt,a,l,Ft,me,Ee,Qe,Le,E,re,T,A,D,O,z,G,F,j,Z,J,he,ye,it,Rt,Ht,i,r,c,S,b,Xt,Ze]}class iA extends nn{constructor(e){super(),tn(this,e,rA,nA,Zt,{closeButton:11,closeOnClickOutside:12,closeOnClickInside:13,closeOnMove:14,openOn:15,openIfTopMost:16,focusAfterOpen:17,anchor:18,offset:19,popupClass:20,maxWidth:21,lngLat:10,html:22,open:0},null,[-1,-1])}}function oA(t){let e;const n=t[16].default,r=ui(n,t,t[24],null);return{c(){r&&r.c()},m(i,a){r&&r.m(i,a),e=!0},p(i,a){r&&r.p&&(!e||a&16777216)&&hi(r,n,i,i[24],e?ci(n,i[24],a,null):fi(i[24]),null)},i(i){e||(pe(r,i),e=!0)},o(i){xe(r,i),e=!1},d(i){r&&r.d(i)}}}function sA(t){let e,n,r;function i(c){t[17](c)}let a={id:t[1],type:"symbol",source:t[2],sourceLayer:t[3],beforeId:t[4],beforeLayerType:t[5],paint:t[6],layout:t[7],filter:t[8],applyToClusters:t[9],minzoom:t[10],maxzoom:t[11],hoverCursor:t[12],manageHoverState:t[13],eventsIfTopMost:t[14],interactive:t[15],$$slots:{default:[oA]},$$scope:{ctx:t}};return t[0]!==void 0&&(a.hovered=t[0]),e=new ey({props:a}),Vi.push(()=>Wc(e,"hovered",i)),e.$on("click",t[18]),e.$on("dblclick",t[19]),e.$on("contextmenu",t[20]),e.$on("mouseenter",t[21]),e.$on("mousemove",t[22]),e.$on("mouseleave",t[23]),{c(){We(e.$$.fragment)},m(c,l){je(e,c,l),r=!0},p(c,[l]){const m={};l&2&&(m.id=c[1]),l&4&&(m.source=c[2]),l&8&&(m.sourceLayer=c[3]),l&16&&(m.beforeId=c[4]),l&32&&(m.beforeLayerType=c[5]),l&64&&(m.paint=c[6]),l&128&&(m.layout=c[7]),l&256&&(m.filter=c[8]),l&512&&(m.applyToClusters=c[9]),l&1024&&(m.minzoom=c[10]),l&2048&&(m.maxzoom=c[11]),l&4096&&(m.hoverCursor=c[12]),l&8192&&(m.manageHoverState=c[13]),l&16384&&(m.eventsIfTopMost=c[14]),l&32768&&(m.interactive=c[15]),l&16777216&&(m.$$scope={dirty:l,ctx:c}),!n&&l&1&&(n=!0,m.hovered=c[0],$c(()=>n=!1)),e.$set(m)},i(c){r||(pe(e.$$.fragment,c),r=!0)},o(c){xe(e.$$.fragment,c),r=!1},d(c){qe(e,c)}}}function aA(t,e,n){let{$$slots:r={},$$scope:i}=e,{id:a=rp("symbol")}=e,{source:c=void 0}=e,{sourceLayer:l=void 0}=e,{beforeId:m=void 0}=e,{beforeLayerType:b=void 0}=e,{paint:S=void 0}=e,{layout:E=void 0}=e,{filter:T=void 0}=e,{applyToClusters:A=void 0}=e,{minzoom:D=void 0}=e,{maxzoom:O=void 0}=e,{hoverCursor:z=void 0}=e,{manageHoverState:G=!1}=e,{hovered:F=null}=e,{eventsIfTopMost:j=!1}=e,{interactive:Z=!0}=e;function J(Ee){F=Ee,n(0,F)}function he(Ee){ir.call(this,t,Ee)}function re(Ee){ir.call(this,t,Ee)}function ye(Ee){ir.call(this,t,Ee)}function ae(Ee){ir.call(this,t,Ee)}function Ae(Ee){ir.call(this,t,Ee)}function me(Ee){ir.call(this,t,Ee)}return t.$$set=Ee=>{"id"in Ee&&n(1,a=Ee.id),"source"in Ee&&n(2,c=Ee.source),"sourceLayer"in Ee&&n(3,l=Ee.sourceLayer),"beforeId"in Ee&&n(4,m=Ee.beforeId),"beforeLayerType"in Ee&&n(5,b=Ee.beforeLayerType),"paint"in Ee&&n(6,S=Ee.paint),"layout"in Ee&&n(7,E=Ee.layout),"filter"in Ee&&n(8,T=Ee.filter),"applyToClusters"in Ee&&n(9,A=Ee.applyToClusters),"minzoom"in Ee&&n(10,D=Ee.minzoom),"maxzoom"in Ee&&n(11,O=Ee.maxzoom),"hoverCursor"in Ee&&n(12,z=Ee.hoverCursor),"manageHoverState"in Ee&&n(13,G=Ee.manageHoverState),"hovered"in Ee&&n(0,F=Ee.hovered),"eventsIfTopMost"in Ee&&n(14,j=Ee.eventsIfTopMost),"interactive"in Ee&&n(15,Z=Ee.interactive),"$$scope"in Ee&&n(24,i=Ee.$$scope)},[F,a,c,l,m,b,S,E,T,A,D,O,z,G,j,Z,r,J,he,re,ye,ae,Ae,me,i]}class OE extends nn{constructor(e){super(),tn(this,e,aA,sA,Zt,{id:1,source:2,sourceLayer:3,beforeId:4,beforeLayerType:5,paint:6,layout:7,filter:8,applyToClusters:9,minzoom:10,maxzoom:11,hoverCursor:12,manageHoverState:13,hovered:0,eventsIfTopMost:14,interactive:15})}}var gm=Uint8Array,zE=Uint16Array,lA=Int32Array,uA=new gm([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]),cA=new gm([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]),FE=function(t,e){for(var n=new zE(31),r=0;r<31;++r)n[r]=e+=1<>1|(tr&21845)<<1,Yl=(Yl&52428)>>2|(Yl&13107)<<2,Yl=(Yl&61680)>>4|(Yl&3855)<<4,pA[tr]=((Yl&65280)>>8|(Yl&255)<<8)>>1;var Yl,tr,ty=new gm(288);for(tr=0;tr<144;++tr)ty[tr]=8;var tr;for(tr=144;tr<256;++tr)ty[tr]=9;var tr;for(tr=256;tr<280;++tr)ty[tr]=7;var tr;for(tr=280;tr<288;++tr)ty[tr]=8;var tr,dA=new gm(32);for(tr=0;tr<32;++tr)dA[tr]=5;var tr,mA=new gm(0),gA=typeof TextDecoder<"u"&&new TextDecoder,_A=0;try{gA.decode(mA,{stream:!0}),_A=1}catch{}var uw=Object.prototype.toString,VE=function(e){var n=uw.call(e),r=n==="[object Arguments]";return r||(r=n!=="[object Array]"&&e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&uw.call(e.callee)==="[object Function]"),r},R0,cw;function yA(){if(cw)return R0;cw=1;var t;if(!Object.keys){var e=Object.prototype.hasOwnProperty,n=Object.prototype.toString,r=VE,i=Object.prototype.propertyIsEnumerable,a=!i.call({toString:null},"toString"),c=i.call(function(){},"prototype"),l=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],m=function(T){var A=T.constructor;return A&&A.prototype===T},b={$applicationCache:!0,$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$onmozfullscreenchange:!0,$onmozfullscreenerror:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},S=function(){if(typeof window>"u")return!1;for(var T in window)try{if(!b["$"+T]&&e.call(window,T)&&window[T]!==null&&typeof window[T]=="object")try{m(window[T])}catch{return!0}}catch{return!0}return!1}(),E=function(T){if(typeof window>"u"||!S)return m(T);try{return m(T)}catch{return!1}};t=function(A){var D=A!==null&&typeof A=="object",O=n.call(A)==="[object Function]",z=r(A),G=D&&n.call(A)==="[object String]",F=[];if(!D&&!O&&!z)throw new TypeError("Object.keys called on a non-object");var j=c&&O;if(G&&A.length>0&&!e.call(A,0))for(var Z=0;Z0)for(var J=0;J"u"||!Xi?Bn:Xi(Uint8Array),qc={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Bn:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Bn:ArrayBuffer,"%ArrayIteratorPrototype%":df&&Xi?Xi([][Symbol.iterator]()):Bn,"%AsyncFromSyncIteratorPrototype%":Bn,"%AsyncFunction%":bf,"%AsyncGenerator%":bf,"%AsyncGeneratorFunction%":bf,"%AsyncIteratorPrototype%":bf,"%Atomics%":typeof Atomics>"u"?Bn:Atomics,"%BigInt%":typeof BigInt>"u"?Bn:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Bn:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Bn:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Bn:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":VA,"%eval%":eval,"%EvalError%":UA,"%Float32Array%":typeof Float32Array>"u"?Bn:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Bn:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Bn:FinalizationRegistry,"%Function%":jE,"%GeneratorFunction%":bf,"%Int8Array%":typeof Int8Array>"u"?Bn:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Bn:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Bn:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":df&&Xi?Xi(Xi([][Symbol.iterator]())):Bn,"%JSON%":typeof JSON=="object"?JSON:Bn,"%Map%":typeof Map>"u"?Bn:Map,"%MapIteratorPrototype%":typeof Map>"u"||!df||!Xi?Bn:Xi(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":Object,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Bn:Promise,"%Proxy%":typeof Proxy>"u"?Bn:Proxy,"%RangeError%":GA,"%ReferenceError%":jA,"%Reflect%":typeof Reflect>"u"?Bn:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Bn:Set,"%SetIteratorPrototype%":typeof Set>"u"||!df||!Xi?Bn:Xi(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Bn:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":df&&Xi?Xi(""[Symbol.iterator]()):Bn,"%Symbol%":df?Symbol:Bn,"%SyntaxError%":Lf,"%ThrowTypeError%":$A,"%TypedArray%":ZA,"%TypeError%":Cf,"%Uint8Array%":typeof Uint8Array>"u"?Bn:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Bn:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Bn:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Bn:Uint32Array,"%URIError%":qA,"%WeakMap%":typeof WeakMap>"u"?Bn:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Bn:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Bn:WeakSet};if(Xi)try{null.error}catch(t){var HA=Xi(Xi(t));qc["%Error.prototype%"]=HA}var XA=function t(e){var n;if(e==="%AsyncFunction%")n=O0("async function () {}");else if(e==="%GeneratorFunction%")n=O0("function* () {}");else if(e==="%AsyncGeneratorFunction%")n=O0("async function* () {}");else if(e==="%AsyncGenerator%"){var r=t("%AsyncGeneratorFunction%");r&&(n=r.prototype)}else if(e==="%AsyncIteratorPrototype%"){var i=t("%AsyncGenerator%");i&&Xi&&(n=Xi(i.prototype))}return qc[e]=n,n},mw={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},_m=d1,m_=GE,YA=_m.call(Function.call,Array.prototype.concat),KA=_m.call(Function.apply,Array.prototype.splice),gw=_m.call(Function.call,String.prototype.replace),g_=_m.call(Function.call,String.prototype.slice),JA=_m.call(Function.call,RegExp.prototype.exec),QA=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,ek=/\\(\\)?/g,tk=function(e){var n=g_(e,0,1),r=g_(e,-1);if(n==="%"&&r!=="%")throw new Lf("invalid intrinsic syntax, expected closing `%`");if(r==="%"&&n!=="%")throw new Lf("invalid intrinsic syntax, expected opening `%`");var i=[];return gw(e,QA,function(a,c,l,m){i[i.length]=l?gw(m,ek,"$1"):c||a}),i},nk=function(e,n){var r=e,i;if(m_(mw,r)&&(i=mw[r],r="%"+i[0]+"%"),m_(qc,r)){var a=qc[r];if(a===bf&&(a=XA(r)),typeof a>"u"&&!n)throw new Cf("intrinsic "+e+" exists, but is not available. Please file an issue!");return{alias:i,name:r,value:a}}throw new Lf("intrinsic "+e+" does not exist!")},Ml=function(e,n){if(typeof e!="string"||e.length===0)throw new Cf("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof n!="boolean")throw new Cf('"allowMissing" argument must be a boolean');if(JA(/^%?[^%]*%?$/,e)===null)throw new Lf("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=tk(e),i=r.length>0?r[0]:"",a=nk("%"+i+"%",n),c=a.name,l=a.value,m=!1,b=a.alias;b&&(i=b[0],KA(r,YA([0,1],b)));for(var S=1,E=!0;S=r.length){var O=jc(l,T);E=!!O,E&&"get"in O&&!("originalValue"in O.get)?l=O.get:l=l[T]}else E=m_(l,T),l=l[T];E&&!m&&(qc[c]=l)}}return l},F0,_w;function m1(){if(_w)return F0;_w=1;var t=Ml,e=t("%Object.defineProperty%",!0)||!1;if(e)try{e({},"a",{value:1})}catch{e=!1}return F0=e,F0}var rk=Ml,Kg=rk("%Object.getOwnPropertyDescriptor%",!0);if(Kg)try{Kg([],"length")}catch{Kg=null}var g1=Kg,yw=m1(),ik=UE,mf=ac,vw=g1,_1=function(e,n,r){if(!e||typeof e!="object"&&typeof e!="function")throw new mf("`obj` must be an object or a function`");if(typeof n!="string"&&typeof n!="symbol")throw new mf("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!="boolean"&&arguments[3]!==null)throw new mf("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!="boolean"&&arguments[4]!==null)throw new mf("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!="boolean"&&arguments[5]!==null)throw new mf("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!="boolean")throw new mf("`loose`, if provided, must be a boolean");var i=arguments.length>3?arguments[3]:null,a=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,l=arguments.length>6?arguments[6]:!1,m=!!vw&&vw(e,n);if(yw)yw(e,n,{configurable:c===null&&m?m.configurable:!c,enumerable:i===null&&m?m.enumerable:!i,value:r,writable:a===null&&m?m.writable:!a});else if(l||!i&&!a&&!c)e[n]=r;else throw new ik("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")},vv=m1(),qE=function(){return!!vv};qE.hasArrayLengthDefineBug=function(){if(!vv)return null;try{return vv([],"length",{value:1}).length!==1}catch{return!0}};var y1=qE,ok=f1,sk=typeof Symbol=="function"&&typeof Symbol("foo")=="symbol",ak=Object.prototype.toString,lk=Array.prototype.concat,bw=_1,uk=function(t){return typeof t=="function"&&ak.call(t)==="[object Function]"},$E=y1(),ck=function(t,e,n,r){if(e in t){if(r===!0){if(t[e]===n)return}else if(!uk(r)||!r())return}$E?bw(t,e,n,!0):bw(t,e,n)},WE=function(t,e){var n=arguments.length>2?arguments[2]:{},r=ok(e);sk&&(r=lk.call(r,Object.getOwnPropertySymbols(e)));for(var i=0;i4294967295||pk(n)!==n)throw new Sw("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],i=!0,a=!0;if("length"in e&&ww){var c=ww(e,"length");c&&!c.configurable&&(i=!1),c&&!c.writable&&(a=!1)}return(i||a||!r)&&(fk?xw(e,"length",n,!0,!0):xw(e,"length",n)),e};(function(t){var e=d1,n=Ml,r=dk,i=ac,a=n("%Function.prototype.apply%"),c=n("%Function.prototype.call%"),l=n("%Reflect.apply%",!0)||e.call(c,a),m=m1(),b=n("%Math.max%");t.exports=function(T){if(typeof T!="function")throw new i("a function is required");var A=l(e,c,arguments);return r(A,1+b(0,T.length-(arguments.length-1)),!0)};var S=function(){return l(e,a,arguments)};m?m(t.exports,"apply",{value:S}):t.exports.apply=S})(ZE);var op=ZE.exports,HE=Ml,XE=op,mk=XE(HE("String.prototype.indexOf")),Ca=function(e,n){var r=HE(e,!!n);return typeof r=="function"&&mk(e,".prototype.")>-1?XE(r):r},gk=f1,YE=ny(),KE=Ca,Ew=Object,_k=KE("Array.prototype.push"),Iw=KE("Object.prototype.propertyIsEnumerable"),yk=YE?Object.getOwnPropertySymbols:null,JE=function(e,n){if(e==null)throw new TypeError("target must be an object");var r=Ew(e);if(arguments.length===1)return r;for(var i=1;i2&&!!arguments[2];return(!r||Dk)&&(kk?Cw(e,"name",n,!0,!0):Cw(e,"name",n)),e},Ok=Nk,zk=ac,Fk=Object,nI=Ok(function(){if(this==null||this!==Fk(this))throw new zk("RegExp.prototype.flags getter called on non-object");var e="";return this.hasIndices&&(e+="d"),this.global&&(e+="g"),this.ignoreCase&&(e+="i"),this.multiline&&(e+="m"),this.dotAll&&(e+="s"),this.unicode&&(e+="u"),this.unicodeSets&&(e+="v"),this.sticky&&(e+="y"),e},"get flags",!0),Bk=nI,Vk=ah.supportsDescriptors,Uk=Object.getOwnPropertyDescriptor,rI=function(){if(Vk&&/a/mig.flags==="gim"){var e=Uk(RegExp.prototype,"flags");if(e&&typeof e.get=="function"&&typeof RegExp.prototype.dotAll=="boolean"&&typeof RegExp.prototype.hasIndices=="boolean"){var n="",r={};if(Object.defineProperty(r,"hasIndices",{get:function(){n+="d"}}),Object.defineProperty(r,"sticky",{get:function(){n+="y"}}),n==="dy")return e.get}}return Bk},Gk=ah.supportsDescriptors,jk=rI,qk=Object.getOwnPropertyDescriptor,$k=Object.defineProperty,Wk=TypeError,Tw=Object.getPrototypeOf,Zk=/a/,Hk=function(){if(!Gk||!Tw)throw new Wk("RegExp.prototype.flags requires a true ES5 environment that supports property descriptors");var e=jk(),n=Tw(Zk),r=qk(n,"flags");return(!r||r.get!==e)&&$k(n,"flags",{configurable:!0,enumerable:!1,get:e}),e},Xk=ah,Yk=op,Kk=nI,iI=rI,Jk=Hk,oI=Yk(iI());Xk(oI,{getPolyfill:iI,implementation:Kk,shim:Jk});var Qk=oI,Jg={exports:{}},e3=ny,lh=function(){return e3()&&!!Symbol.toStringTag},t3=lh(),n3=Ca,bv=n3("Object.prototype.toString"),ry=function(e){return t3&&e&&typeof e=="object"&&Symbol.toStringTag in e?!1:bv(e)==="[object Arguments]"},sI=function(e){return ry(e)?!0:e!==null&&typeof e=="object"&&typeof e.length=="number"&&e.length>=0&&bv(e)!=="[object Array]"&&bv(e.callee)==="[object Function]"},r3=function(){return ry(arguments)}();ry.isLegacyArguments=sI;var aI=r3?ry:sI;const i3={},o3=Object.freeze(Object.defineProperty({__proto__:null,default:i3},Symbol.toStringTag,{value:"Module"})),s3=J_(o3);var v1=typeof Map=="function"&&Map.prototype,V0=Object.getOwnPropertyDescriptor&&v1?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,__=v1&&V0&&typeof V0.get=="function"?V0.get:null,Lw=v1&&Map.prototype.forEach,b1=typeof Set=="function"&&Set.prototype,U0=Object.getOwnPropertyDescriptor&&b1?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,y_=b1&&U0&&typeof U0.get=="function"?U0.get:null,Pw=b1&&Set.prototype.forEach,a3=typeof WeakMap=="function"&&WeakMap.prototype,Bd=a3?WeakMap.prototype.has:null,l3=typeof WeakSet=="function"&&WeakSet.prototype,Vd=l3?WeakSet.prototype.has:null,u3=typeof WeakRef=="function"&&WeakRef.prototype,Mw=u3?WeakRef.prototype.deref:null,c3=Boolean.prototype.valueOf,h3=Object.prototype.toString,f3=Function.prototype.toString,p3=String.prototype.match,x1=String.prototype.slice,ju=String.prototype.replace,d3=String.prototype.toUpperCase,Aw=String.prototype.toLowerCase,lI=RegExp.prototype.test,kw=Array.prototype.concat,vl=Array.prototype.join,m3=Array.prototype.slice,Dw=Math.floor,xv=typeof BigInt=="function"?BigInt.prototype.valueOf:null,G0=Object.getOwnPropertySymbols,wv=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Symbol.prototype.toString:null,Pf=typeof Symbol=="function"&&typeof Symbol.iterator=="object",ko=typeof Symbol=="function"&&Symbol.toStringTag&&(typeof Symbol.toStringTag===Pf||"symbol")?Symbol.toStringTag:null,uI=Object.prototype.propertyIsEnumerable,Rw=(typeof Reflect=="function"?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function Nw(t,e){if(t===1/0||t===-1/0||t!==t||t&&t>-1e3&&t<1e3||lI.call(/e/,e))return e;var n=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if(typeof t=="number"){var r=t<0?-Dw(-t):Dw(t);if(r!==t){var i=String(r),a=x1.call(e,i.length+1);return ju.call(i,n,"$&_")+"."+ju.call(ju.call(a,/([0-9]{3})/g,"$&_"),/_$/,"")}}return ju.call(e,n,"$&_")}var Sv=s3,Ow=Sv.custom,zw=hI(Ow)?Ow:null,g3=function t(e,n,r,i){var a=n||{};if(Vu(a,"quoteStyle")&&a.quoteStyle!=="single"&&a.quoteStyle!=="double")throw new TypeError('option "quoteStyle" must be "single" or "double"');if(Vu(a,"maxStringLength")&&(typeof a.maxStringLength=="number"?a.maxStringLength<0&&a.maxStringLength!==1/0:a.maxStringLength!==null))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var c=Vu(a,"customInspect")?a.customInspect:!0;if(typeof c!="boolean"&&c!=="symbol")throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(Vu(a,"indent")&&a.indent!==null&&a.indent!==" "&&!(parseInt(a.indent,10)===a.indent&&a.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(Vu(a,"numericSeparator")&&typeof a.numericSeparator!="boolean")throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var l=a.numericSeparator;if(typeof e>"u")return"undefined";if(e===null)return"null";if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return pI(e,a);if(typeof e=="number"){if(e===0)return 1/0/e>0?"0":"-0";var m=String(e);return l?Nw(e,m):m}if(typeof e=="bigint"){var b=String(e)+"n";return l?Nw(e,b):b}var S=typeof a.depth>"u"?5:a.depth;if(typeof r>"u"&&(r=0),r>=S&&S>0&&typeof e=="object")return Ev(e)?"[Array]":"[Object]";var E=R3(a,r);if(typeof i>"u")i=[];else if(fI(i,e)>=0)return"[Circular]";function T(Qe,Le,lt){if(Le&&(i=m3.call(i),i.push(Le)),lt){var Ke={depth:a.depth};return Vu(a,"quoteStyle")&&(Ke.quoteStyle=a.quoteStyle),t(Qe,Ke,r+1,i)}return t(Qe,a,r+1,i)}if(typeof e=="function"&&!Fw(e)){var A=I3(e),D=Rg(e,T);return"[Function"+(A?": "+A:" (anonymous)")+"]"+(D.length>0?" { "+vl.call(D,", ")+" }":"")}if(hI(e)){var O=Pf?ju.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):wv.call(e);return typeof e=="object"&&!Pf?dd(O):O}if(A3(e)){for(var z="<"+Aw.call(String(e.nodeName)),G=e.attributes||[],F=0;F",z}if(Ev(e)){if(e.length===0)return"[]";var j=Rg(e,T);return E&&!D3(j)?"["+Iv(j,E)+"]":"[ "+vl.call(j,", ")+" ]"}if(v3(e)){var Z=Rg(e,T);return!("cause"in Error.prototype)&&"cause"in e&&!uI.call(e,"cause")?"{ ["+String(e)+"] "+vl.call(kw.call("[cause]: "+T(e.cause),Z),", ")+" }":Z.length===0?"["+String(e)+"]":"{ ["+String(e)+"] "+vl.call(Z,", ")+" }"}if(typeof e=="object"&&c){if(zw&&typeof e[zw]=="function"&&Sv)return Sv(e,{depth:S-r});if(c!=="symbol"&&typeof e.inspect=="function")return e.inspect()}if(C3(e)){var J=[];return Lw&&Lw.call(e,function(Qe,Le){J.push(T(Le,e,!0)+" => "+T(Qe,e))}),Bw("Map",__.call(e),J,E)}if(P3(e)){var he=[];return Pw&&Pw.call(e,function(Qe){he.push(T(Qe,e))}),Bw("Set",y_.call(e),he,E)}if(T3(e))return j0("WeakMap");if(M3(e))return j0("WeakSet");if(L3(e))return j0("WeakRef");if(x3(e))return dd(T(Number(e)));if(S3(e))return dd(T(xv.call(e)));if(w3(e))return dd(c3.call(e));if(b3(e))return dd(T(String(e)));if(typeof window<"u"&&e===window)return"{ [object Window] }";if(e===dm)return"{ [object globalThis] }";if(!y3(e)&&!Fw(e)){var re=Rg(e,T),ye=Rw?Rw(e)===Object.prototype:e instanceof Object||e.constructor===Object,ae=e instanceof Object?"":"null prototype",Ae=!ye&&ko&&Object(e)===e&&ko in e?x1.call(lc(e),8,-1):ae?"Object":"",me=ye||typeof e.constructor!="function"?"":e.constructor.name?e.constructor.name+" ":"",Ee=me+(Ae||ae?"["+vl.call(kw.call([],Ae||[],ae||[]),": ")+"] ":"");return re.length===0?Ee+"{}":E?Ee+"{"+Iv(re,E)+"}":Ee+"{ "+vl.call(re,", ")+" }"}return String(e)};function cI(t,e,n){var r=(n.quoteStyle||e)==="double"?'"':"'";return r+t+r}function _3(t){return ju.call(String(t),/"/g,""")}function Ev(t){return lc(t)==="[object Array]"&&(!ko||!(typeof t=="object"&&ko in t))}function y3(t){return lc(t)==="[object Date]"&&(!ko||!(typeof t=="object"&&ko in t))}function Fw(t){return lc(t)==="[object RegExp]"&&(!ko||!(typeof t=="object"&&ko in t))}function v3(t){return lc(t)==="[object Error]"&&(!ko||!(typeof t=="object"&&ko in t))}function b3(t){return lc(t)==="[object String]"&&(!ko||!(typeof t=="object"&&ko in t))}function x3(t){return lc(t)==="[object Number]"&&(!ko||!(typeof t=="object"&&ko in t))}function w3(t){return lc(t)==="[object Boolean]"&&(!ko||!(typeof t=="object"&&ko in t))}function hI(t){if(Pf)return t&&typeof t=="object"&&t instanceof Symbol;if(typeof t=="symbol")return!0;if(!t||typeof t!="object"||!wv)return!1;try{return wv.call(t),!0}catch{}return!1}function S3(t){if(!t||typeof t!="object"||!xv)return!1;try{return xv.call(t),!0}catch{}return!1}var E3=Object.prototype.hasOwnProperty||function(t){return t in this};function Vu(t,e){return E3.call(t,e)}function lc(t){return h3.call(t)}function I3(t){if(t.name)return t.name;var e=p3.call(f3.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}function fI(t,e){if(t.indexOf)return t.indexOf(e);for(var n=0,r=t.length;ne.maxStringLength){var n=t.length-e.maxStringLength,r="... "+n+" more character"+(n>1?"s":"");return pI(x1.call(t,0,e.maxStringLength),e)+r}var i=ju.call(ju.call(t,/(['\\])/g,"\\$1"),/[\x00-\x1f]/g,k3);return cI(i,"single",e)}function k3(t){var e=t.charCodeAt(0),n={8:"b",9:"t",10:"n",12:"f",13:"r"}[e];return n?"\\"+n:"\\x"+(e<16?"0":"")+d3.call(e.toString(16))}function dd(t){return"Object("+t+")"}function j0(t){return t+" { ? }"}function Bw(t,e,n,r){var i=r?Iv(n,r):vl.call(n,", ");return t+" ("+e+") {"+i+"}"}function D3(t){for(var e=0;e=0)return!1;return!0}function R3(t,e){var n;if(t.indent===" ")n=" ";else if(typeof t.indent=="number"&&t.indent>0)n=vl.call(Array(t.indent+1)," ");else return null;return{base:n,prev:vl.call(Array(e+1),n)}}function Iv(t,e){if(t.length===0)return"";var n=` +`+e.prev+e.base;return n+vl.call(t,","+n)+` +`+e.prev}function Rg(t,e){var n=Ev(t),r=[];if(n){r.length=t.length;for(var i=0;i=r)return n+1;var i=Zw(e,n);if(i<55296||i>56319)return n+1;var a=Zw(e,n+1);return a<56320||a>57343?n+1:n+2},$0=function(e){var n=0;return{next:function(){var i=n>=e.length,a;return i||(a=e[n],n+=1),{done:i,value:a}}}},Hw=function(e,n){if(i4(e)||jw(e))return $0(e);if(o4(e)){var r=0;return{next:function(){var a=u4(e,r),c=l4(e,r,a);return r=a,{done:a>e.length,value:c}}}}if(n&&typeof e["_es6-shim iterator_"]<"u")return e["_es6-shim iterator_"]()};if(!s4&&!a4)Jg.exports=function(e){if(e!=null)return Hw(e,!0)};else{var c4=vI,h4=xI,Xw=za("Map.prototype.forEach",!0),Yw=za("Set.prototype.forEach",!0);if(typeof process>"u"||!process.versions||!process.versions.node)var Kw=za("Map.prototype.iterator",!0),Jw=za("Set.prototype.iterator",!0);var Qw=za("Map.prototype.@@iterator",!0)||za("Map.prototype._es6-shim iterator_",!0),e2=za("Set.prototype.@@iterator",!0)||za("Set.prototype._es6-shim iterator_",!0),f4=function(e){if(c4(e)){if(Kw)return qw(Kw(e));if(Qw)return Qw(e);if(Xw){var n=[];return Xw(e,function(i,a){Ww(n,[a,i])}),$0(n)}}if(h4(e)){if(Jw)return qw(Jw(e));if(e2)return e2(e);if(Yw){var r=[];return Yw(e,function(i){Ww(r,i)}),$0(r)}}};Jg.exports=function(e){return f4(e)||Hw(e)}}}var p4=Jg.exports,t2=function(t){return t!==t},wI=function(e,n){return e===0&&n===0?1/e===1/n:!!(e===n||t2(e)&&t2(n))},d4=wI,SI=function(){return typeof Object.is=="function"?Object.is:d4},m4=SI,g4=ah,_4=function(){var e=m4();return g4(Object,{is:e},{is:function(){return Object.is!==e}}),e},y4=ah,v4=op,b4=wI,EI=SI,x4=_4,II=v4(EI(),Object);y4(II,{getPolyfill:EI,implementation:b4,shim:x4});var w4=II,S4=op,CI=Ca,E4=Ml,Cv=E4("%ArrayBuffer%",!0),Qg=CI("ArrayBuffer.prototype.byteLength",!0),I4=CI("Object.prototype.toString"),n2=!!Cv&&!Qg&&new Cv(0).slice,r2=!!n2&&S4(n2),TI=Qg||r2?function(e){if(!e||typeof e!="object")return!1;try{return Qg?Qg(e):r2(e,0),!0}catch{return!1}}:Cv?function(e){return I4(e)==="[object ArrayBuffer]"}:function(e){return!1},C4=Date.prototype.getDay,T4=function(e){try{return C4.call(e),!0}catch{return!1}},L4=Object.prototype.toString,P4="[object Date]",M4=lh(),A4=function(e){return typeof e!="object"||e===null?!1:M4?T4(e):L4.call(e)===P4},Tv=Ca,LI=lh(),PI,MI,Lv,Pv;if(LI){PI=Tv("Object.prototype.hasOwnProperty"),MI=Tv("RegExp.prototype.exec"),Lv={};var W0=function(){throw Lv};Pv={toString:W0,valueOf:W0},typeof Symbol.toPrimitive=="symbol"&&(Pv[Symbol.toPrimitive]=W0)}var k4=Tv("Object.prototype.toString"),D4=Object.getOwnPropertyDescriptor,R4="[object RegExp]",N4=LI?function(e){if(!e||typeof e!="object")return!1;var n=D4(e,"lastIndex"),r=n&&PI(n,"value");if(!r)return!1;try{MI(e,Pv)}catch(i){return i===Lv}}:function(e){return!e||typeof e!="object"&&typeof e!="function"?!1:k4(e)===R4},O4=Ca,i2=O4("SharedArrayBuffer.prototype.byteLength",!0),z4=i2?function(e){if(!e||typeof e!="object")return!1;try{return i2(e),!0}catch{return!1}}:function(e){return!1},F4=Number.prototype.toString,B4=function(e){try{return F4.call(e),!0}catch{return!1}},V4=Object.prototype.toString,U4="[object Number]",G4=lh(),j4=function(e){return typeof e=="number"?!0:typeof e!="object"?!1:G4?B4(e):V4.call(e)===U4},AI=Ca,q4=AI("Boolean.prototype.toString"),$4=AI("Object.prototype.toString"),W4=function(e){try{return q4(e),!0}catch{return!1}},Z4="[object Boolean]",H4=lh(),X4=function(e){return typeof e=="boolean"?!0:e===null||typeof e!="object"?!1:H4&&Symbol.toStringTag in e?W4(e):$4(e)===Z4},Mv={exports:{}},Y4=Object.prototype.toString,K4=p1();if(K4){var J4=Symbol.prototype.toString,Q4=/^Symbol\(.*\)$/,eD=function(e){return typeof e.valueOf()!="symbol"?!1:Q4.test(J4.call(e))};Mv.exports=function(e){if(typeof e=="symbol")return!0;if(Y4.call(e)!=="[object Symbol]")return!1;try{return eD(e)}catch{return!1}}}else Mv.exports=function(e){return!1};var tD=Mv.exports,Av={exports:{}},o2=typeof BigInt<"u"&&BigInt,nD=function(){return typeof o2=="function"&&typeof BigInt=="function"&&typeof o2(42)=="bigint"&&typeof BigInt(42)=="bigint"},rD=nD();if(rD){var iD=BigInt.prototype.valueOf,oD=function(e){try{return iD.call(e),!0}catch{}return!1};Av.exports=function(e){return e===null||typeof e>"u"||typeof e=="boolean"||typeof e=="string"||typeof e=="number"||typeof e=="symbol"||typeof e=="function"?!1:typeof e=="bigint"?!0:oD(e)}}else Av.exports=function(e){return!1};var sD=Av.exports,aD=_I,lD=j4,uD=X4,cD=tD,hD=sD,fD=function(e){if(e==null||typeof e!="object"&&typeof e!="function")return null;if(aD(e))return"String";if(lD(e))return"Number";if(uD(e))return"Boolean";if(cD(e))return"Symbol";if(hD(e))return"BigInt"},x_=typeof WeakMap=="function"&&WeakMap.prototype?WeakMap:null,s2=typeof WeakSet=="function"&&WeakSet.prototype?WeakSet:null,w_;x_||(w_=function(e){return!1});var kv=x_?x_.prototype.has:null,Z0=s2?s2.prototype.has:null;!w_&&!kv&&(w_=function(e){return!1});var pD=w_||function(e){if(!e||typeof e!="object")return!1;try{if(kv.call(e,kv),Z0)try{Z0.call(e,Z0)}catch{return!0}return e instanceof x_}catch{}return!1},Dv={exports:{}},dD=Ml,kI=Ca,mD=dD("%WeakSet%",!0),H0=kI("WeakSet.prototype.has",!0);if(H0){var X0=kI("WeakMap.prototype.has",!0);Dv.exports=function(e){if(!e||typeof e!="object")return!1;try{if(H0(e,H0),X0)try{X0(e,X0)}catch{return!0}return e instanceof mD}catch{}return!1}}else Dv.exports=function(e){return!1};var gD=Dv.exports,_D=vI,yD=xI,vD=pD,bD=gD,xD=function(e){if(e&&typeof e=="object"){if(_D(e))return"Map";if(yD(e))return"Set";if(vD(e))return"WeakMap";if(bD(e))return"WeakSet"}return!1},DI=Function.prototype.toString,wf=typeof Reflect=="object"&&Reflect!==null&&Reflect.apply,Rv,e_;if(typeof wf=="function"&&typeof Object.defineProperty=="function")try{Rv=Object.defineProperty({},"length",{get:function(){throw e_}}),e_={},wf(function(){throw 42},null,Rv)}catch(t){t!==e_&&(wf=null)}else wf=null;var wD=/^\s*class\b/,Nv=function(e){try{var n=DI.call(e);return wD.test(n)}catch{return!1}},Y0=function(e){try{return Nv(e)?!1:(DI.call(e),!0)}catch{return!1}},t_=Object.prototype.toString,SD="[object Object]",ED="[object Function]",ID="[object GeneratorFunction]",CD="[object HTMLAllCollection]",TD="[object HTML document.all class]",LD="[object HTMLCollection]",PD=typeof Symbol=="function"&&!!Symbol.toStringTag,MD=!(0 in[,]),Ov=function(){return!1};if(typeof document=="object"){var AD=document.all;t_.call(AD)===t_.call(document.all)&&(Ov=function(e){if((MD||!e)&&(typeof e>"u"||typeof e=="object"))try{var n=t_.call(e);return(n===CD||n===TD||n===LD||n===SD)&&e("")==null}catch{}return!1})}var kD=wf?function(e){if(Ov(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;try{wf(e,null,Rv)}catch(n){if(n!==e_)return!1}return!Nv(e)&&Y0(e)}:function(e){if(Ov(e))return!0;if(!e||typeof e!="function"&&typeof e!="object")return!1;if(PD)return Y0(e);if(Nv(e))return!1;var n=t_.call(e);return n!==ED&&n!==ID&&!/^\[object HTML/.test(n)?!1:Y0(e)},DD=kD,RD=Object.prototype.toString,RI=Object.prototype.hasOwnProperty,ND=function(e,n,r){for(var i=0,a=e.length;i=3&&(i=r),RD.call(e)==="[object Array]"?ND(e,n,i):typeof e=="string"?OD(e,n,i):zD(e,n,i)},BD=FD,VD=["Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"],K0=VD,UD=typeof globalThis>"u"?dm:globalThis,GD=function(){for(var e=[],n=0;n"u"?dm:globalThis,zv=jD(),T1=C1("String.prototype.slice"),J0=Object.getPrototypeOf,$D=C1("Array.prototype.indexOf",!0)||function(e,n){for(var r=0;r-1?n:n!=="Object"?!1:ZD(e)}return n_?WD(e):null},XD=Ca,u2=XD("ArrayBuffer.prototype.byteLength",!0),YD=TI,KD=function(e){return YD(e)?u2?u2(e):e.byteLength:NaN},OI=Pk,Al=Ca,c2=Qk,JD=Ml,Mf=p4,QD=mI,h2=w4,f2=aI,p2=gI,d2=TI,m2=A4,g2=N4,_2=z4,y2=f1,v2=fD,b2=xD,x2=HD,w2=KD,S2=Al("SharedArrayBuffer.prototype.byteLength",!0),E2=Al("Date.prototype.getTime"),Q0=Object.getPrototypeOf,I2=Al("Object.prototype.toString"),I_=JD("%Set%",!0),Fv=Al("Map.prototype.has",!0),C_=Al("Map.prototype.get",!0),C2=Al("Map.prototype.size",!0),T_=Al("Set.prototype.add",!0),zI=Al("Set.prototype.delete",!0),L_=Al("Set.prototype.has",!0),r_=Al("Set.prototype.size",!0);function T2(t,e,n,r){for(var i=Mf(t),a;(a=i.next())&&!a.done;)if(Ga(e,a.value,n,r))return zI(t,a.value),!0;return!1}function FI(t){if(typeof t>"u")return null;if(typeof t!="object")return typeof t=="symbol"?!1:typeof t=="string"||typeof t=="number"?+t==+t:!0}function eR(t,e,n,r,i,a){var c=FI(n);if(c!=null)return c;var l=C_(e,c),m=OI({},i,{strict:!1});return typeof l>"u"&&!Fv(e,c)||!Ga(r,l,m,a)?!1:!Fv(t,c)&&Ga(r,l,m,a)}function tR(t,e,n){var r=FI(n);return r??(L_(e,r)&&!L_(t,r))}function L2(t,e,n,r,i,a){for(var c=Mf(t),l,m;(l=c.next())&&!l.done;)if(m=l.value,Ga(n,m,i,a)&&Ga(r,C_(e,m),i,a))return zI(t,m),!0;return!1}function Ga(t,e,n,r){var i=n||{};if(i.strict?h2(t,e):t===e)return!0;var a=v2(t),c=v2(e);if(a!==c)return!1;if(!t||!e||typeof t!="object"&&typeof e!="object")return i.strict?h2(t,e):t==e;var l=r.has(t),m=r.has(e),b;if(l&&m){if(r.get(t)===r.get(e))return!0}else b={};return l||r.set(t,b),m||r.set(e,b),iR(t,e,i,r)}function P2(t){return!t||typeof t!="object"||typeof t.length!="number"||typeof t.copy!="function"||typeof t.slice!="function"||t.length>0&&typeof t[0]!="number"?!1:!!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t))}function nR(t,e,n,r){if(r_(t)!==r_(e))return!1;for(var i=Mf(t),a=Mf(e),c,l,m;(c=i.next())&&!c.done;)if(c.value&&typeof c.value=="object")m||(m=new I_),T_(m,c.value);else if(!L_(e,c.value)){if(n.strict||!tR(t,e,c.value))return!1;m||(m=new I_),T_(m,c.value)}if(m){for(;(l=a.next())&&!l.done;)if(l.value&&typeof l.value=="object"){if(!T2(m,l.value,n.strict,r))return!1}else if(!n.strict&&!L_(t,l.value)&&!T2(m,l.value,n.strict,r))return!1;return r_(m)===0}return!0}function rR(t,e,n,r){if(C2(t)!==C2(e))return!1;for(var i=Mf(t),a=Mf(e),c,l,m,b,S,E;(c=i.next())&&!c.done;)if(b=c.value[0],S=c.value[1],b&&typeof b=="object")m||(m=new I_),T_(m,b);else if(E=C_(e,b),typeof E>"u"&&!Fv(e,b)||!Ga(S,E,n,r)){if(n.strict||!eR(t,e,b,S,n,r))return!1;m||(m=new I_),T_(m,b)}if(m){for(;(l=a.next())&&!l.done;)if(b=l.value[0],E=l.value[1],b&&typeof b=="object"){if(!L2(m,t,b,E,n,r))return!1}else if(!n.strict&&(!t.has(b)||!Ga(C_(t,b),E,n,r))&&!L2(m,t,b,E,OI({},n,{strict:!1}),r))return!1;return r_(m)===0}return!0}function iR(t,e,n,r){var i,a;if(typeof t!=typeof e||t==null||e==null||I2(t)!==I2(e)||f2(t)!==f2(e))return!1;var c=p2(t),l=p2(e);if(c!==l)return!1;var m=t instanceof Error,b=e instanceof Error;if(m!==b||(m||b)&&(t.name!==e.name||t.message!==e.message))return!1;var S=g2(t),E=g2(e);if(S!==E||(S||E)&&(t.source!==e.source||c2(t)!==c2(e)))return!1;var T=m2(t),A=m2(e);if(T!==A||(T||A)&&E2(t)!==E2(e)||n.strict&&Q0&&Q0(t)!==Q0(e))return!1;var D=x2(t),O=x2(e);if(D!==O)return!1;if(D||O){if(t.length!==e.length)return!1;for(i=0;i=0;i--)if(he[i]!=re[i])return!1;for(i=he.length-1;i>=0;i--)if(a=he[i],!Ga(t[a],e[a],n,r))return!1;var ye=b2(t),ae=b2(e);return ye!==ae?!1:ye==="Set"||ae==="Set"?nR(t,e,n,r):ye==="Map"?rR(t,e,n,r):!0}var oR=function(e,n,r){return Ga(e,n,r,QD())};const BI=l1(oR);var sR=Object.defineProperty,cr=(t,e)=>sR(t,"name",{value:e,configurable:!0}),aR=class{constructor(e){this.direction=!1,this.compareProperties=!0;var n,r,i;this.precision=10**-((n=e==null?void 0:e.precision)!=null?n:17),this.direction=(r=e==null?void 0:e.direction)!=null?r:!1,this.compareProperties=(i=e==null?void 0:e.compareProperties)!=null?i:!0}compare(e,n){if(e.type!==n.type||!Pd(e,n))return!1;switch(e.type){case"Point":return this.compareCoord(e.coordinates,n.coordinates);case"LineString":return this.compareLine(e.coordinates,n.coordinates);case"Polygon":return this.comparePolygon(e,n);case"GeometryCollection":return this.compareGeometryCollection(e,n);case"Feature":return this.compareFeature(e,n);case"FeatureCollection":return this.compareFeatureCollection(e,n);default:if(e.type.startsWith("Multi")){const r=Bv(e),i=Bv(n);return r.every(a=>i.some(c=>this.compare(a,c)))}}return!1}compareCoord(e,n){return e.length===n.length&&e.every((r,i)=>Math.abs(r-n[i])=0&&(r=[].concat(e.slice(i,e.length),e.slice(1,i+1))),r}comparePath(e,n){return e.every((r,i)=>this.compareCoord(r,n[i]))}comparePolygon(e,n){if(this.compareLine(e.coordinates[0],n.coordinates[0],1,!0)){const r=e.coordinates.slice(1,e.coordinates.length),i=n.coordinates.slice(1,n.coordinates.length);return r.every(a=>i.some(c=>this.compareLine(a,c,1,!0)))}return!1}compareGeometryCollection(e,n){return Pd(e.geometries,n.geometries)&&this.compareBBox(e,n)&&e.geometries.every((r,i)=>this.compare(r,n.geometries[i]))}compareFeature(e,n){return e.id===n.id&&(this.compareProperties?BI(e.properties,n.properties):!0)&&this.compareBBox(e,n)&&this.compare(e.geometry,n.geometry)}compareFeatureCollection(e,n){return Pd(e.features,n.features)&&this.compareBBox(e,n)&&e.features.every((r,i)=>this.compare(r,n.features[i]))}compareBBox(e,n){return!e.bbox&&!n.bbox||(e.bbox&&n.bbox?this.compareCoord(e.bbox,n.bbox):!1)}};cr(aR,"GeojsonEquality");function Pd(t,e){return t.coordinates?t.coordinates.length===e.coordinates.length:t.length===e.length}cr(Pd,"sameLength");function Bv(t){return t.coordinates.map(e=>({type:t.type.replace("Multi",""),coordinates:e}))}cr(Bv,"explode");var Ns=63710088e-1,VI={centimeters:Ns*100,centimetres:Ns*100,degrees:360/(2*Math.PI),feet:Ns*3.28084,inches:Ns*39.37,kilometers:Ns/1e3,kilometres:Ns/1e3,meters:Ns,metres:Ns,miles:Ns/1609.344,millimeters:Ns*1e3,millimetres:Ns*1e3,nauticalmiles:Ns/1852,radians:1,yards:Ns*1.0936},M2={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,nauticalmiles:29155334959812285e-23,millimeters:1e6,millimetres:1e6,yards:1.195990046};function Sl(t,e,n={}){const r={type:"Feature"};return(n.id===0||n.id)&&(r.id=n.id),n.bbox&&(r.bbox=n.bbox),r.properties=e||{},r.geometry=t,r}cr(Sl,"feature");function lR(t,e,n={}){switch(t){case"Point":return Jl(e).geometry;case"LineString":return nu(e).geometry;case"Polygon":return L1(e).geometry;case"MultiPoint":return GI(e).geometry;case"MultiLineString":return UI(e).geometry;case"MultiPolygon":return jI(e).geometry;default:throw new Error(t+" is invalid")}}cr(lR,"geometry");function Jl(t,e,n={}){if(!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!P_(t[0])||!P_(t[1]))throw new Error("coordinates must contain numbers");return Sl({type:"Point",coordinates:t},e,n)}cr(Jl,"point");function uR(t,e,n={}){return iy(t.map(r=>Jl(r,e)),n)}cr(uR,"points");function L1(t,e,n={}){for(const i of t){if(i.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(i[i.length-1].length!==i[0].length)throw new Error("First and last Position are not equivalent.");for(let a=0;aL1(r,e)),n)}cr(cR,"polygons");function nu(t,e,n={}){if(t.length<2)throw new Error("coordinates must be an array of two or more positions");return Sl({type:"LineString",coordinates:t},e,n)}cr(nu,"lineString");function hR(t,e,n={}){return iy(t.map(r=>nu(r,e)),n)}cr(hR,"lineStrings");function iy(t,e={}){const n={type:"FeatureCollection"};return e.id&&(n.id=e.id),e.bbox&&(n.bbox=e.bbox),n.features=t,n}cr(iy,"featureCollection");function UI(t,e,n={}){return Sl({type:"MultiLineString",coordinates:t},e,n)}cr(UI,"multiLineString");function GI(t,e,n={}){return Sl({type:"MultiPoint",coordinates:t},e,n)}cr(GI,"multiPoint");function jI(t,e,n={}){return Sl({type:"MultiPolygon",coordinates:t},e,n)}cr(jI,"multiPolygon");function fR(t,e,n={}){return Sl({type:"GeometryCollection",geometries:t},e,n)}cr(fR,"geometryCollection");function pR(t,e=0){if(e&&!(e>=0))throw new Error("precision must be a positive number");const n=Math.pow(10,e||0);return Math.round(t*n)/n}cr(pR,"round");function qI(t,e="kilometers"){const n=VI[e];if(!n)throw new Error(e+" units is invalid");return t*n}cr(qI,"radiansToLength");function P1(t,e="kilometers"){const n=VI[e];if(!n)throw new Error(e+" units is invalid");return t/n}cr(P1,"lengthToRadians");function dR(t,e){return $I(P1(t,e))}cr(dR,"lengthToDegrees");function mR(t){let e=t%360;return e<0&&(e+=360),e}cr(mR,"bearingToAzimuth");function $I(t){return t%(2*Math.PI)*180/Math.PI}cr($I,"radiansToDegrees");function gR(t){return t%360*Math.PI/180}cr(gR,"degreesToRadians");function _R(t,e="kilometers",n="kilometers"){if(!(t>=0))throw new Error("length must be a positive number");return qI(P1(t,e),n)}cr(_R,"convertLength");function yR(t,e="meters",n="kilometers"){if(!(t>=0))throw new Error("area must be a positive number");const r=M2[e];if(!r)throw new Error("invalid original units");const i=M2[n];if(!i)throw new Error("invalid final units");return t/r*i}cr(yR,"convertArea");function P_(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}cr(P_,"isNumber");function M1(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}cr(M1,"isObject");function vR(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(t.length!==4&&t.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach(e=>{if(!P_(e))throw new Error("bbox must only contain numbers")})}cr(vR,"validateBBox");function bR(t){if(!t)throw new Error("id is required");if(["string","number"].indexOf(typeof t)===-1)throw new Error("id must be a number or a string")}cr(bR,"validateId");var xR=Object.defineProperty,bo=(t,e)=>xR(t,"name",{value:e,configurable:!0});function ap(t,e,n){if(t!==null)for(var r,i,a,c,l,m,b,S=0,E=0,T,A=t.type,D=A==="FeatureCollection",O=A==="Feature",z=D?t.features.length:1,G=0;Gm||D>b||O>S){l=E,m=r,b=D,S=O,a=0;return}var z=nu([l,E],n.properties);if(e(z,r,i,O,a)===!1)return!1;a++,l=E})===!1)return!1}}})}bo(HI,"segmentEach");function LR(t,e,n){var r=n,i=!1;return HI(t,function(a,c,l,m,b){i===!1&&n===void 0?r=a:r=e(r,a,c,l,m,b),i=!0}),r}bo(LR,"segmentReduce");function XI(t,e){if(!t)throw new Error("geojson is required");oy(t,function(n,r,i){if(n.geometry!==null){var a=n.geometry.type,c=n.geometry.coordinates;switch(a){case"LineString":if(e(n,r,i,0,0)===!1)return!1;break;case"Polygon":for(var l=0;lkR(t,"name",{value:e,configurable:!0});function k1(t,e={}){if(t.bbox!=null&&e.recompute!==!0)return t.bbox;const n=[1/0,1/0,-1/0,-1/0];return ap(t,r=>{n[0]>r[0]&&(n[0]=r[0]),n[1]>r[1]&&(n[1]=r[1]),n[2]e in t?OR(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,A2=(t,e,n)=>(zR(t,typeof e!="symbol"?e+"":e,n),n);function Hd(){}function YI(t){return t()}function k2(){return Object.create(null)}function sy(t){t.forEach(YI)}function KI(t){return typeof t=="function"}function FR(t,e){return t!=t?e==e:t!==e||t&&typeof t=="object"||typeof t=="function"}function BR(t){return Object.keys(t).length===0}function VR(t,e){t.appendChild(e)}function UR(t,e,n){t.insertBefore(e,n||null)}function JI(t){t.parentNode&&t.parentNode.removeChild(t)}function D2(t){return document.createElementNS("http://www.w3.org/2000/svg",t)}function Ou(t,e,n){n==null?t.removeAttribute(e):t.getAttribute(e)!==n&&t.setAttribute(e,n)}function GR(t){return Array.from(t.childNodes)}function zg(t,e,n){t.classList.toggle(e,!!n)}let D1;function Ud(t){D1=t}const xf=[],R2=[];let Tf=[];const N2=[],jR=Promise.resolve();let Vv=!1;function qR(){Vv||(Vv=!0,jR.then(QI))}function Uv(t){Tf.push(t)}const ev=new Set;let gf=0;function QI(){if(gf!==0)return;const t=D1;do{try{for(;gft.indexOf(r)===-1?e.push(r):n.push(r)),n.forEach(r=>r()),Tf=e}const ZR=new Set;function HR(t,e){t&&t.i&&(ZR.delete(t),t.i(e))}function XR(t,e,n){const{fragment:r,after_update:i}=t.$$;r&&r.m(e,n),Uv(()=>{const a=t.$$.on_mount.map(YI).filter(KI);t.$$.on_destroy?t.$$.on_destroy.push(...a):sy(a),t.$$.on_mount=[]}),i.forEach(Uv)}function YR(t,e){const n=t.$$;n.fragment!==null&&(WR(n.after_update),sy(n.on_destroy),n.fragment&&n.fragment.d(e),n.on_destroy=n.fragment=null,n.ctx=[])}function KR(t,e){t.$$.dirty[0]===-1&&(xf.push(t),qR(),t.$$.dirty.fill(0)),t.$$.dirty[e/31|0]|=1<{const D=A.length?A[0]:T;return b.ctx&&i(b.ctx[E],b.ctx[E]=D)&&(!b.skip_bound&&b.bound[E]&&b.bound[E](D),S&&KR(t,E)),T}):[],b.update(),S=!0,sy(b.before_update),b.fragment=r?r(b.ctx):!1,e.target){if(e.hydrate){const E=GR(e.target);b.fragment&&b.fragment.l(E),E.forEach(JI)}else b.fragment&&b.fragment.c();e.intro&&HR(t.$$.fragment),XR(t,e.target,e.anchor),QI()}Ud(m)}class QR{constructor(){A2(this,"$$"),A2(this,"$$set")}$destroy(){YR(this,1),this.$destroy=Hd}$on(e,n){if(!KI(n))return Hd;const r=this.$$.callbacks[e]||(this.$$.callbacks[e]=[]);return r.push(n),()=>{const i=r.indexOf(n);i!==-1&&r.splice(i,1)}}$set(e){this.$$set&&!BR(e)&&(this.$$.skip_bound=!0,this.$$set(e),this.$$.skip_bound=!1)}}const eN="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(eN);function tN(t){let e,n,r;return{c(){e=D2("svg"),n=D2("path"),Ou(n,"stroke-width","4"),Ou(n,"d","M 5,33.103579 C 5,17.607779 18.457,5 35,5 C 51.543,5 65,17.607779 65,33.103579 C 65,56.388679 40.4668,76.048179 36.6112,79.137779 C 36.3714,79.329879 36.2116,79.457979 36.1427,79.518879 C 35.8203,79.800879 35.4102,79.942779 35,79.942779 C 34.5899,79.942779 34.1797,79.800879 33.8575,79.518879 C 33.7886,79.457979 33.6289,79.330079 33.3893,79.138079 C 29.5346,76.049279 5,56.389379 5,33.103579 Z M 35.0001,49.386379 C 43.1917,49.386379 49.8323,42.646079 49.8323,34.331379 C 49.8323,26.016779 43.1917,19.276479 35.0001,19.276479 C 26.8085,19.276479 20.1679,26.016779 20.1679,34.331379 C 20.1679,42.646079 26.8085,49.386379 35.0001,49.386379 Z"),Ou(n,"class","svelte-gzo3ar"),Ou(e,"width",r=t[0]==="list"?20:void 0),Ou(e,"viewBox","0 0 70 85"),Ou(e,"fill","none"),Ou(e,"class","svelte-gzo3ar"),zg(e,"in-map",t[0]!=="list"),zg(e,"list-icon",t[0]==="list")},m(i,a){UR(i,e,a),VR(e,n)},p(i,[a]){a&1&&r!==(r=i[0]==="list"?20:void 0)&&Ou(e,"width",r),a&1&&zg(e,"in-map",i[0]!=="list"),a&1&&zg(e,"list-icon",i[0]==="list")},i:Hd,o:Hd,d(i){i&&JI(e)}}}function nN(t,e,n){let{displayIn:r}=e;return t.$$set=i=>{"displayIn"in i&&n(0,r=i.displayIn)},[r]}class rN extends QR{constructor(e){super(),JR(this,e,nN,tN,FR,{displayIn:0})}}const iN=[{verbatimCoordinates:"40.123, -74.123",verbatimLatitude:"40.123",verbatimLongitude:"-74.123"},{verbatimCoordinates:"40.123° N 74.123° W",verbatimLatitude:"40.123° N",verbatimLongitude:"74.123° W"},{verbatimCoordinates:"40.123° N 74.123° W",verbatimLatitude:"40.123° N",verbatimLongitude:"74.123° W"},{verbatimCoordinates:'40° 7´ 22.8" N 74° 7´ 22.8" W',verbatimLatitude:'40° 7´ 22.8" N',verbatimLongitude:'74° 7´ 22.8" W'},{verbatimCoordinates:"40° 7.38’ , -74° 7.38’",verbatimLatitude:"40° 7.38’",verbatimLongitude:"-74° 7.38’"},{verbatimCoordinates:"N40°7’22.8’’, W74°7’22.8’’",verbatimLatitude:"N40°7’22.8’’",verbatimLongitude:"W74°7’22.8’’"},{verbatimCoordinates:'40°7’22.8"N, 74°7’22.8"W',verbatimLatitude:'40°7’22.8"N',verbatimLongitude:'74°7’22.8"W'},{verbatimCoordinates:`40°7'22.8"N, 74°7'22.8"W`,verbatimLatitude:`40°7'22.8"N`,verbatimLongitude:`74°7'22.8"W`},{verbatimCoordinates:"40 7 22.8, -74 7 22.8",verbatimLatitude:"40 7 22.8",verbatimLongitude:"-74 7 22.8"},{verbatimCoordinates:"40.123 -74.123",verbatimLatitude:"40.123",verbatimLongitude:"-74.123"},{verbatimCoordinates:"40.123°,-74.123°",verbatimLatitude:"40.123°",verbatimLongitude:"-74.123°"},{verbatimCoordinates:"40.123N74.123W",verbatimLatitude:"40.123N",verbatimLongitude:"74.123W"},{verbatimCoordinates:"4007.38N7407.38W",verbatimLatitude:"4007.38N",verbatimLongitude:"7407.38W"},{verbatimCoordinates:'40°7’22.8"N, 74°7’22.8"W',verbatimLatitude:'40°7’22.8"N',verbatimLongitude:'74°7’22.8"W'},{verbatimCoordinates:"400722.8N740722.8W",verbatimLatitude:"400722.8N",verbatimLongitude:"740722.8W"},{verbatimCoordinates:"N 40 7.38 W 74 7.38",verbatimLatitude:"N 40 7.38",verbatimLongitude:"W 74 7.38"},{verbatimCoordinates:"40:7:22.8N 74:7:22.8W",verbatimLatitude:"40:7:22.8N",verbatimLongitude:"74:7:22.8W"},{verbatimCoordinates:"40:7:23N,74:7:23W",verbatimLatitude:"40:7:23N",verbatimLongitude:"74:7:23W",decimalLatitude:40.1230555555,decimalLongitude:-74.1230555555},{verbatimCoordinates:'40°7’23"N 74°7’23"W',verbatimLatitude:'40°7’23"N',verbatimLongitude:'74°7’23"W',decimalLatitude:40.1230555555,decimalLongitude:-74.12305555555555},{verbatimCoordinates:'40°7’23"S 74°7’23"E',verbatimLatitude:'40°7’23"S',verbatimLongitude:'74°7’23"E',decimalLatitude:-40.1230555555,decimalLongitude:74.12305555555555},{verbatimCoordinates:'40°7’23" -74°7’23"',verbatimLatitude:'40°7’23"',verbatimLongitude:'-74°7’23"',decimalLatitude:40.1230555555,decimalLongitude:-74.123055555},{verbatimCoordinates:'40d 7’ 23" N 74d 7’ 23" W',verbatimLatitude:'40d 7’ 23" N',verbatimLongitude:'74d 7’ 23" W',decimalLatitude:40.1230555555,decimalLongitude:-74.123055555},{verbatimCoordinates:"40.123N 74.123W",verbatimLatitude:"40.123N",verbatimLongitude:"74.123W"},{verbatimCoordinates:"40° 7.38, -74° 7.38",verbatimLatitude:"40° 7.38",verbatimLongitude:"-74° 7.38"},{verbatimCoordinates:"40° 7.38, -74° 7.38",verbatimLatitude:"40° 7.38",verbatimLongitude:"-74° 7.38"},{verbatimCoordinates:"40 7 22.8; -74 7 22.8",verbatimLatitude:"40 7 22.8",verbatimLongitude:"-74 7 22.8"}],oN={decimalLatitude:40.123,decimalLongitude:-74.123},sN=[{verbatimCoordinates:`50°4'17.698"south, 14°24'2.826"east`,verbatimLatitude:`50°4'17.698"south`,verbatimLongitude:`14°24'2.826"east`,decimalLatitude:-50.07158277777778,decimalLongitude:14.400785},{verbatimCoordinates:"50d4m17.698S 14d24m2.826E",verbatimLatitude:"50d4m17.698S",verbatimLongitude:"14d24m2.826E",decimalLatitude:-50.07158277777778,decimalLongitude:14.400785},{verbatimCoordinates:"40:26:46N,79:56:55W",verbatimLatitude:"40:26:46N",verbatimLongitude:"79:56:55W",decimalLatitude:40.44611111111111,decimalLongitude:-79.9486111111111},{verbatimCoordinates:"40:26:46.302N 79:56:55.903W",verbatimLatitude:"40:26:46.302N",verbatimLongitude:"79:56:55.903W",decimalLatitude:40.446195,decimalLongitude:-79.94886194444445},{verbatimCoordinates:"40°26′47″N 79°58′36″W",verbatimLatitude:"40°26′47″N",verbatimLongitude:"79°58′36″W",decimalLatitude:40.44638888888889,decimalLongitude:-79.97666666666667},{verbatimCoordinates:"40d 26′ 47″ N 79d 58′ 36″ W",verbatimLatitude:"40d 26′ 47″ N",verbatimLongitude:"79d 58′ 36″ W",decimalLatitude:40.44638888888889,decimalLongitude:-79.97666666666667},{verbatimCoordinates:"40.446195N 79.948862W",verbatimLatitude:"40.446195N",verbatimLongitude:"79.948862W",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40,446195° 79,948862°",verbatimLatitude:"40,446195°",verbatimLongitude:"79,948862°",decimalLatitude:40.446195,decimalLongitude:79.948862},{verbatimCoordinates:"40° 26.7717, -79° 56.93172",verbatimLatitude:"40° 26.7717",verbatimLongitude:"-79° 56.93172",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40.446195, -79.948862",verbatimLatitude:"40.446195",verbatimLongitude:"-79.948862",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40.123256; -74.123256",verbatimLatitude:"40.123256",verbatimLongitude:"-74.123256",decimalLatitude:40.123256,decimalLongitude:-74.123256},{verbatimCoordinates:"18°24S 22°45E",verbatimLatitude:"18°24S",verbatimLongitude:"22°45E",decimalLatitude:-18.4,decimalLongitude:22.75}],aN=[{verbatimCoordinates:"10.432342S 10.6345345E",verbatimLatitude:"10.432342S",verbatimLongitude:"10.6345345E",decimalLatitude:-10.432342,decimalLongitude:10.6345345},{verbatimCoordinates:"10.00S 10.00E",verbatimLatitude:"10.00S",verbatimLongitude:"10.00E",decimalLatitude:-10,decimalLongitude:10},{verbatimCoordinates:"00.00S 01.00E",verbatimLatitude:"00.00S",verbatimLongitude:"01.00E",decimalLatitude:0,decimalLongitude:1},{verbatimCoordinates:"18.24S 22.45E",verbatimLatitude:"18.24S",verbatimLongitude:"22.45E",decimalLatitude:-18.4,decimalLongitude:22.75},{verbatimCoordinates:"27deg 15min 45.2sec S 18deg 32min 53.7sec E",verbatimLatitude:"27deg 15min 45.2sec S",verbatimLongitude:"18deg 32min 53.7sec E",decimalLatitude:-27.262555555555554,decimalLongitude:18.54825},{verbatimCoordinates:"-23.3245° S / 28.2344° E",verbatimLatitude:"-23.3245° S",verbatimLongitude:"28.2344° E",decimalLatitude:-23.3245,decimalLongitude:28.2344},{verbatimCoordinates:"40° 26.7717 -79° 56.93172",verbatimLatitude:"40° 26.7717",verbatimLongitude:"-79° 56.93172",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"27.15.45S 18.32.53E",verbatimLatitude:"27.15.45S",verbatimLongitude:"18.32.53E",decimalLatitude:-27.2625,decimalLongitude:18.548055},{verbatimCoordinates:"-27.15.45 18.32.53",verbatimLatitude:"-27.15.45",verbatimLongitude:"18.32.53",decimalLatitude:-27.2625,decimalLongitude:18.548055},{verbatimCoordinates:"27.15.45.2S 18.32.53.4E",verbatimLatitude:"27.15.45.2S",verbatimLongitude:"18.32.53.4E",decimalLatitude:-27.262556,decimalLongitude:18.548167},{verbatimCoordinates:"27.15.45,2S 18.32.53,4E",verbatimLatitude:"27.15.45,2S",verbatimLongitude:"18.32.53,4E",decimalLatitude:-27.262556,decimalLongitude:18.548167},{verbatimCoordinates:"S23.43563 ° E22.45634 °",verbatimLatitude:"S23.43563 °",verbatimLongitude:"E22.45634 °",decimalLatitude:-23.43563,decimalLongitude:22.45634},{verbatimCoordinates:"27,71372° S 23,07771° E",verbatimLatitude:"27,71372° S",verbatimLongitude:"23,07771° E",decimalLatitude:-27.71372,decimalLongitude:23.07771},{verbatimCoordinates:"27.45.34 S 23.23.23 E",verbatimLatitude:"27.45.34 S",verbatimLongitude:"23.23.23 E",decimalLatitude:-27.759444,decimalLongitude:23.38972222},{verbatimCoordinates:"S 27.45.34 E 23.23.23",verbatimLatitude:"S 27.45.34",verbatimLongitude:"E 23.23.23",decimalLatitude:-27.759444,decimalLongitude:23.38972222}];function lN(){const t=[];return iN.forEach(e=>{e.decimalLatitude?t.push(e):t.push({...e,...oN})}),[...t,...sN,...aN]}const uN=lN();uN.map(t=>t.verbatimCoordinates);/** + * splaytree v3.1.2 + * Fast Splay tree for Node and browser + * + * @author Alexander Milevski + * @license MIT + * @preserve + *//*! ***************************************************************************** +Copyright (c) Microsoft Corporation. All rights reserved. +Licensed under the Apache License, Version 2.0 (the "License"); you may not use +this file except in compliance with the License. You may obtain a copy of the +License at http://www.apache.org/licenses/LICENSE-2.0 + +THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED +WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, +MERCHANTABLITY OR NON-INFRINGEMENT. + +See the Apache Version 2.0 License for specific language governing permissions +and limitations under the License. +***************************************************************************** */function cN(t,e){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},r,i,a,c;return c={next:l(0),throw:l(1),return:l(2)},typeof Symbol=="function"&&(c[Symbol.iterator]=function(){return this}),c;function l(b){return function(S){return m([b,S])}}function m(b){if(r)throw new TypeError("Generator is already executing.");for(;n;)try{if(r=1,i&&(a=b[0]&2?i.return:b[0]?i.throw||((a=i.return)&&a.call(i),0):i.next)&&!(a=a.call(i,b[1])).done)return a;switch(i=0,a&&(b=[b[0]&2,a.value]),b[0]){case 0:case 1:a=b;break;case 4:return n.label++,{value:b[1],done:!1};case 5:n.label++,i=b[1],b=[0];continue;case 7:b=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(b[0]===6||b[0]===2)){n=0;continue}if(b[0]===3&&(!a||b[1]>a[0]&&b[1]e?1:t0){if(e.right===null)break;if(n(t,e.right.key)>0){var l=e.right;if(e.right=l.left,l.left=e,e=l,e.right===null)break}i.right=e,i=e,e=e.right}else break}return i.right=e.left,a.left=e.right,e.left=r.right,e.right=r.left,e}function tv(t,e,n,r){var i=new Hu(t,e);if(n===null)return i.left=i.right=null,i;n=Uu(t,n,r);var a=r(t,n.key);return a<0?(i.left=n.left,i.right=n,n.left=null):a>=0&&(i.right=n.right,i.left=n,n.right=null),i}function O2(t,e,n){var r=null,i=null;if(e){e=Uu(t,e,n);var a=n(e.key,t);a===0?(r=e.left,i=e.right):a<0?(i=e.right,e.right=null,r=e):(r=e.left,e.left=null,i=e)}return{left:r,right:i}}function fN(t,e,n){return e===null?t:(t===null||(e=Uu(t.key,e,n),e.left=t),e)}function Gv(t,e,n,r,i){if(t){r(""+e+(n?"└── ":"├── ")+i(t)+` +`);var a=e+(n?" ":"│ ");t.left&&Gv(t.left,a,!1,r,i),t.right&&Gv(t.right,a,!0,r,i)}}var R1=function(){function t(e){e===void 0&&(e=hN),this._root=null,this._size=0,this._comparator=e}return t.prototype.insert=function(e,n){return this._size++,this._root=tv(e,n,this._root,this._comparator)},t.prototype.add=function(e,n){var r=new Hu(e,n);this._root===null&&(r.left=r.right=null,this._size++,this._root=r);var i=this._comparator,a=Uu(e,this._root,i),c=i(e,a.key);return c===0?this._root=a:(c<0?(r.left=a.left,r.right=a,a.left=null):c>0&&(r.right=a.right,r.left=a,a.right=null),this._size++,this._root=r),this._root},t.prototype.remove=function(e){this._root=this._remove(e,this._root,this._comparator)},t.prototype._remove=function(e,n,r){var i;if(n===null)return null;n=Uu(e,n,r);var a=r(e,n.key);return a===0?(n.left===null?i=n.right:(i=Uu(e,n.left,r),i.right=n.right),this._size--,i):n},t.prototype.pop=function(){var e=this._root;if(e){for(;e.left;)e=e.left;return this._root=Uu(e.key,this._root,this._comparator),this._root=this._remove(e.key,this._root,this._comparator),{key:e.key,data:e.data}}return null},t.prototype.findStatic=function(e){for(var n=this._root,r=this._comparator;n;){var i=r(e,n.key);if(i===0)return n;i<0?n=n.left:n=n.right}return null},t.prototype.find=function(e){return this._root&&(this._root=Uu(e,this._root,this._comparator),this._comparator(e,this._root.key)!==0)?null:this._root},t.prototype.contains=function(e){for(var n=this._root,r=this._comparator;n;){var i=r(e,n.key);if(i===0)return!0;i<0?n=n.left:n=n.right}return!1},t.prototype.forEach=function(e,n){for(var r=this._root,i=[],a=!1;!a;)r!==null?(i.push(r),r=r.left):i.length!==0?(r=i.pop(),e.call(n,r),r=r.right):a=!0;return this},t.prototype.range=function(e,n,r,i){for(var a=[],c=this._comparator,l=this._root,m;a.length!==0||l;)if(l)a.push(l),l=l.left;else{if(l=a.pop(),m=c(l.key,n),m>0)break;if(c(l.key,e)>=0&&r.call(i,l))return this;l=l.right}return this},t.prototype.keys=function(){var e=[];return this.forEach(function(n){var r=n.key;return e.push(r)}),e},t.prototype.values=function(){var e=[];return this.forEach(function(n){var r=n.data;return e.push(r)}),e},t.prototype.min=function(){return this._root?this.minNode(this._root).key:null},t.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},t.prototype.minNode=function(e){if(e===void 0&&(e=this._root),e)for(;e.left;)e=e.left;return e},t.prototype.maxNode=function(e){if(e===void 0&&(e=this._root),e)for(;e.right;)e=e.right;return e},t.prototype.at=function(e){for(var n=this._root,r=!1,i=0,a=[];!r;)if(n)a.push(n),n=n.left;else if(a.length>0){if(n=a.pop(),i===e)return n;i++,n=n.right}else r=!0;return null},t.prototype.next=function(e){var n=this._root,r=null;if(e.right){for(r=e.right;r.left;)r=r.left;return r}for(var i=this._comparator;n;){var a=i(e.key,n.key);if(a===0)break;a<0?(r=n,n=n.left):n=n.right}return r},t.prototype.prev=function(e){var n=this._root,r=null;if(e.left!==null){for(r=e.left;r.right;)r=r.right;return r}for(var i=this._comparator;n;){var a=i(e.key,n.key);if(a===0)break;a<0?n=n.left:(r=n,n=n.right)}return r},t.prototype.clear=function(){return this._root=null,this._size=0,this},t.prototype.toList=function(){return dN(this._root)},t.prototype.load=function(e,n,r){n===void 0&&(n=[]),r===void 0&&(r=!1);var i=e.length,a=this._comparator;if(r&&$v(e,n,0,i-1,a),this._root===null)this._root=jv(e,n,0,i),this._size=i;else{var c=mN(this.toList(),pN(e,n),a);i=this._size+i,this._root=qv({head:c},0,i)}return this},t.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(t.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),t.prototype.toString=function(e){e===void 0&&(e=function(r){return String(r.key)});var n=[];return Gv(this._root,"",!0,function(r){return n.push(r)},e),n.join("")},t.prototype.update=function(e,n,r){var i=this._comparator,a=O2(e,this._root,i),c=a.left,l=a.right;i(e,n)<0?l=tv(n,r,l,i):c=tv(n,r,c,i),this._root=fN(c,l,i)},t.prototype.split=function(e){return O2(e,this._root,this._comparator)},t.prototype[Symbol.iterator]=function(){var e,n,r;return cN(this,function(i){switch(i.label){case 0:e=this._root,n=[],r=!1,i.label=1;case 1:return r?[3,6]:e===null?[3,2]:(n.push(e),e=e.left,[3,5]);case 2:return n.length===0?[3,4]:(e=n.pop(),[4,e]);case 3:return i.sent(),e=e.right,[3,5];case 4:r=!0,i.label=5;case 5:return[3,1];case 6:return[2]}})},t}();function jv(t,e,n,r){var i=r-n;if(i>0){var a=n+Math.floor(i/2),c=t[a],l=e[a],m=new Hu(c,l);return m.left=jv(t,e,n,a),m.right=jv(t,e,a+1,r),m}return null}function pN(t,e){for(var n=new Hu(null,null),r=n,i=0;i0?(e=a=a.next=n.pop(),e=e.right):r=!0;return a.next=null,i.next}function qv(t,e,n){var r=n-e;if(r>0){var i=e+Math.floor(r/2),a=qv(t,e,i),c=t.head;return c.left=a,t.head=t.head.next,c.right=qv(t,i+1,n),c}return null}function mN(t,e,n){for(var r=new Hu(null,null),i=r,a=t,c=e;a!==null&&c!==null;)n(a.key,c.key)<0?(i.next=a,a=a.next):(i.next=c,c=c.next),i=i.next;return a!==null?i.next=a:c!==null&&(i.next=c),r.next}function $v(t,e,n,r,i){if(!(n>=r)){for(var a=t[n+r>>1],c=n-1,l=r+1;;){do c++;while(i(t[c],a)<0);do l--;while(i(t[l],a)>0);if(c>=l)break;var m=t[c];t[c]=t[l],t[l]=m,m=e[c],e[c]=e[l],e[l]=m}$v(t,e,n,l,i),$v(t,e,l+1,r,i)}}function Ta(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function z2(t,e){for(var n=0;nn.x?1:e.yn.y?1:0}}]);function t(e,n){Ta(this,t),e.events===void 0?e.events=[this]:e.events.push(this),this.point=e,this.isLeft=n}return ts(t,[{key:"link",value:function(e){if(e.point===this.point)throw new Error("Tried to link already linked events");for(var n=e.point.events,r=0,i=n.length;r=0&&E>=0?bT?-1:0:m<0&&E<0?bT?1:0:Em?1:0}}}]),t}(),xN=0,A_=function(){ts(t,null,[{key:"compare",value:function(e,n){var r=e.leftSE.point.x,i=n.leftSE.point.x,a=e.rightSE.point.x,c=n.rightSE.point.x;if(cl&&m>b)return-1;var E=e.comparePoint(n.leftSE.point);if(E<0)return 1;if(E>0)return-1;var T=n.comparePoint(e.rightSE.point);return T!==0?T:-1}if(r>i){if(lm&&l>S)return 1;var A=n.comparePoint(e.leftSE.point);if(A!==0)return A;var D=e.comparePoint(n.rightSE.point);return D<0?1:D>0?-1:1}if(lm)return 1;if(ac){var z=e.comparePoint(n.rightSE.point);if(z<0)return 1;if(z>0)return-1}if(a!==c){var G=b-l,F=a-r,j=S-m,Z=c-i;if(G>F&&jZ)return-1}return a>c?1:aS?1:e.idn.id?1:0}}]);function t(e,n,r,i){Ta(this,t),this.id=++xN,this.leftSE=e,e.segment=this,e.otherSE=n,this.rightSE=n,n.segment=this,n.otherSE=e,this.rings=r,this.windings=i}return ts(t,[{key:"replaceRightSE",value:function(e){this.rightSE=e,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var e=this.leftSE.point.y,n=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:en?e:n}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(e){return e.x===this.leftSE.point.x&&e.y===this.leftSE.point.y||e.x===this.rightSE.point.x&&e.y===this.rightSE.point.y}},{key:"comparePoint",value:function(e){if(this.isAnEndpoint(e))return 0;var n=this.leftSE.point,r=this.rightSE.point,i=this.vector();if(n.x===r.x)return e.x===n.x?0:e.x0&&l.swapEvents(),_l.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),r&&(i.checkForConsuming(),a.checkForConsuming()),n}},{key:"swapEvents",value:function(){var e=this.rightSE;this.rightSE=this.leftSE,this.leftSE=e,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var n=0,r=this.windings.length;n0){var a=n;n=r,r=a}if(n.prev===r){var c=n;n=r,r=c}for(var l=0,m=r.rings.length;l0)i=n,a=e,c=-1;else throw new Error("Tried to create degenerate segment at [".concat(e.x,", ").concat(e.y,"]"));var m=new _l(i,!0),b=new _l(a,!1);return new t(m,b,[r],[c])}}]),t}(),G2=function(){function t(e,n,r){if(Ta(this,t),!Array.isArray(e)||e.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=n,this.isExterior=r,this.segments=[],typeof e[0][0]!="number"||typeof e[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var i=Xd.round(e[0][0],e[0][1]);this.bbox={ll:{x:i.x,y:i.y},ur:{x:i.x,y:i.y}};for(var a=i,c=1,l=e.length;cthis.bbox.ur.x&&(this.bbox.ur.x=m.x),m.y>this.bbox.ur.y&&(this.bbox.ur.y=m.y),a=m)}(i.x!==a.x||i.y!==a.y)&&this.segments.push(A_.fromRing(a,i,this))}return ts(t,[{key:"getSweepEvents",value:function(){for(var e=[],n=0,r=this.segments.length;nthis.bbox.ur.x&&(this.bbox.ur.x=a.bbox.ur.x),a.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=a.bbox.ur.y),this.interiorRings.push(a)}this.multiPoly=n}return ts(t,[{key:"getSweepEvents",value:function(){for(var e=this.exteriorRing.getSweepEvents(),n=0,r=this.interiorRings.length;nthis.bbox.ur.x&&(this.bbox.ur.x=a.bbox.ur.x),a.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=a.bbox.ur.y),this.polys.push(a)}this.isSubject=n}return ts(t,[{key:"getSweepEvents",value:function(){for(var e=[],n=0,r=this.polys.length;n0&&(e=i)}for(var a=e.segment.prevInResult(),c=a?a.prevInResult():null;;){if(!a)return null;if(!c)return a.ringOut;if(c.ringOut!==a.ringOut)return c.ringOut.enclosingRing()!==a.ringOut?a.ringOut:a.ringOut.enclosingRing();a=c.prevInResult(),c=a?a.prevInResult():null}}}]),t}(),q2=function(){function t(e){Ta(this,t),this.exteriorRing=e,e.poly=this,this.interiorRings=[]}return ts(t,[{key:"addInterior",value:function(e){this.interiorRings.push(e),e.poly=this}},{key:"getGeom",value:function(){var e=[this.exteriorRing.getGeom()];if(e[0]===null)return null;for(var n=0,r=this.interiorRings.length;n1&&arguments[1]!==void 0?arguments[1]:A_.compare;Ta(this,t),this.queue=e,this.tree=new R1(n),this.segments=[]}return ts(t,[{key:"process",value:function(e){var n=e.segment,r=[];if(e.consumedBy)return e.isLeft?this.queue.remove(e.otherSE):this.tree.remove(n),r;var i=e.isLeft?this.tree.insert(n):this.tree.find(n);if(!i)throw new Error("Unable to find segment #".concat(n.id," ")+"[".concat(n.leftSE.point.x,", ").concat(n.leftSE.point.y,"] -> ")+"[".concat(n.rightSE.point.x,", ").concat(n.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var a=i,c=i,l=void 0,m=void 0;l===void 0;)a=this.tree.prev(a),a===null?l=null:a.key.consumedBy===void 0&&(l=a.key);for(;m===void 0;)c=this.tree.next(c),c===null?m=null:c.key.consumedBy===void 0&&(m=c.key);if(e.isLeft){var b=null;if(l){var S=l.getIntersection(n);if(S!==null&&(n.isAnEndpoint(S)||(b=S),!l.isAnEndpoint(S)))for(var E=this._splitSafely(l,S),T=0,A=E.length;T0?(this.tree.remove(n),r.push(e)):(this.segments.push(n),n.prev=l)}else{if(l&&m){var ye=l.getIntersection(m);if(ye!==null){if(!l.isAnEndpoint(ye))for(var ae=this._splitSafely(l,ye),Ae=0,me=ae.length;Ae$2)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var Z=new IN(D),J=D.size,he=D.pop();he;){var re=he.key;if(D.size===J){var ye=re.segment;throw new Error("Unable to pop() ".concat(re.isLeft?"left":"right"," SweepEvent ")+"[".concat(re.point.x,", ").concat(re.point.y,"] from segment #").concat(ye.id," ")+"[".concat(ye.leftSE.point.x,", ").concat(ye.leftSE.point.y,"] -> ")+"[".concat(ye.rightSE.point.x,", ").concat(ye.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(D.size>$2)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(Z.segments.length>CN)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var ae=Z.process(re),Ae=0,me=ae.length;Ae1?e-1:0),r=1;r1?e-1:0),r=1;r1?e-1:0),r=1;r1?e-1:0),r=1;rn[0]&&(e[0]=n[0]),e[1]>n[1]&&(e[1]=n[1]),e[2]e.x?1:this.ye.y?1:0};Re.prototype.clone=function(){};Re.prototype.copy=function(){return new Re(this)};Re.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"};Re.prototype.distance3D=function(t){var e=this.x-t.x,n=this.y-t.y,r=this.z-t.z;return Math.sqrt(e*e+n*n+r*r)};Re.prototype.distance=function(t){var e=this.x-t.x,n=this.y-t.y;return Math.sqrt(e*e+n*n)};Re.prototype.hashCode=function(){var t=17;return t=37*t+Re.hashCode(this.x),t=37*t+Re.hashCode(this.y),t};Re.prototype.setCoordinate=function(t){this.x=t.x,this.y=t.y,this.z=t.z};Re.prototype.interfaces_=function(){return[Ss,ly,Es]};Re.prototype.getClass=function(){return Re};Re.hashCode=function(){if(arguments.length===1){var t=arguments[0],e=on.doubleToLongBits(t);return Math.trunc((e^e)>>>32)}};uh.DimensionalComparator.get=function(){return ru};uh.serialVersionUID.get=function(){return 6683108902428367e3};uh.NULL_ORDINATE.get=function(){return on.NaN};uh.X.get=function(){return 0};uh.Y.get=function(){return 1};uh.Z.get=function(){return 2};Object.defineProperties(Re,uh);var ru=function(t){if(this._dimensionsToTest=2,arguments.length!==0&&arguments.length===1){var e=arguments[0];if(e!==2&&e!==3)throw new gr("only 2 or 3 dimensions may be specified");this._dimensionsToTest=e}};ru.prototype.compare=function(t,e){var n=t,r=e,i=ru.compare(n.x,r.x);if(i!==0)return i;var a=ru.compare(n.y,r.y);if(a!==0)return a;if(this._dimensionsToTest<=2)return 0;var c=ru.compare(n.z,r.z);return c};ru.prototype.interfaces_=function(){return[Af]};ru.prototype.getClass=function(){return ru};ru.compare=function(t,e){return te?1:on.isNaN(t)?on.isNaN(e)?0:-1:on.isNaN(e)?1:0};var kf=function(){};kf.prototype.create=function(){};kf.prototype.interfaces_=function(){return[]};kf.prototype.getClass=function(){return kf};var Oe=function(){},ym={INTERIOR:{configurable:!0},BOUNDARY:{configurable:!0},EXTERIOR:{configurable:!0},NONE:{configurable:!0}};Oe.prototype.interfaces_=function(){return[]};Oe.prototype.getClass=function(){return Oe};Oe.toLocationSymbol=function(t){switch(t){case Oe.EXTERIOR:return"e";case Oe.BOUNDARY:return"b";case Oe.INTERIOR:return"i";case Oe.NONE:return"-"}throw new gr("Unknown location value: "+t)};ym.INTERIOR.get=function(){return 0};ym.BOUNDARY.get=function(){return 1};ym.EXTERIOR.get=function(){return 2};ym.NONE.get=function(){return-1};Object.defineProperties(Oe,ym);var Wt=function(t,e){return t.interfaces_&&t.interfaces_().indexOf(e)>-1},ns=function(){},lC={LOG_10:{configurable:!0}};ns.prototype.interfaces_=function(){return[]};ns.prototype.getClass=function(){return ns};ns.log10=function(t){var e=Math.log(t);return on.isInfinite(e)||on.isNaN(e)?e:e/ns.LOG_10};ns.min=function(t,e,n,r){var i=t;return en?n:t}else if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var r=arguments[0],i=arguments[1],a=arguments[2];return ra?a:r}};ns.wrap=function(t,e){return t<0?e- -t%e:t%e};ns.max=function(){if(arguments.length===3){var t=arguments[0],e=arguments[1],n=arguments[2],r=t;return e>r&&(r=e),n>r&&(r=n),r}else if(arguments.length===4){var i=arguments[0],a=arguments[1],c=arguments[2],l=arguments[3],m=i;return a>m&&(m=a),c>m&&(m=c),l>m&&(m=l),m}};ns.average=function(t,e){return(t+e)/2};lC.LOG_10.get=function(){return Math.log(10)};Object.defineProperties(ns,lC);var La=function(t){this.str=t};La.prototype.append=function(t){this.str+=t};La.prototype.setCharAt=function(t,e){this.str=this.str.substr(0,t)+e+this.str.substr(t+1)};La.prototype.toString=function(t){return this.str};var ma=function(t){this.value=t};ma.prototype.intValue=function(){return this.value};ma.prototype.compareTo=function(t){return this.valuet?1:0};ma.isNaN=function(t){return Number.isNaN(t)};var Yd=function(){};Yd.isWhitespace=function(t){return t<=32&&t>=0||t===127};Yd.toUpperCase=function(t){return t.toUpperCase()};var Ge=function t(){if(this._hi=0,this._lo=0,arguments.length===0)this.init(0);else if(arguments.length===1){if(typeof arguments[0]=="number"){var e=arguments[0];this.init(e)}else if(arguments[0]instanceof t){var n=arguments[0];this.init(n)}else if(typeof arguments[0]=="string"){var r=arguments[0];t.call(this,t.parse(r))}}else if(arguments.length===2){var i=arguments[0],a=arguments[1];this.init(i,a)}},Hs={PI:{configurable:!0},TWO_PI:{configurable:!0},PI_2:{configurable:!0},E:{configurable:!0},NaN:{configurable:!0},EPS:{configurable:!0},SPLIT:{configurable:!0},MAX_PRINT_DIGITS:{configurable:!0},TEN:{configurable:!0},ONE:{configurable:!0},SCI_NOT_EXPONENT_CHAR:{configurable:!0},SCI_NOT_ZERO:{configurable:!0}};Ge.prototype.le=function(t){return(this._hi9?(S=!0,E="9"):E="0"+b,c.append(E),n=n.subtract(Ge.valueOf(b)).multiply(Ge.TEN),S&&n.selfAdd(Ge.TEN);var T=!0,A=Ge.magnitude(n._hi);if(A<0&&Math.abs(A)>=l-m&&(T=!1),!T)break}return e[0]=r,c.toString()};Ge.prototype.sqr=function(){return this.multiply(this)};Ge.prototype.doubleValue=function(){return this._hi+this._lo};Ge.prototype.subtract=function(){if(arguments[0]instanceof Ge){var t=arguments[0];return this.add(t.negate())}else if(typeof arguments[0]=="number"){var e=arguments[0];return this.add(-e)}};Ge.prototype.equals=function(){if(arguments.length===1){var t=arguments[0];return this._hi===t._hi&&this._lo===t._lo}};Ge.prototype.isZero=function(){return this._hi===0&&this._lo===0};Ge.prototype.selfSubtract=function(){if(arguments[0]instanceof Ge){var t=arguments[0];return this.isNaN()?this:this.selfAdd(-t._hi,-t._lo)}else if(typeof arguments[0]=="number"){var e=arguments[0];return this.isNaN()?this:this.selfAdd(-e,0)}};Ge.prototype.getSpecialNumberString=function(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null};Ge.prototype.min=function(t){return this.le(t)?this:t};Ge.prototype.selfDivide=function(){if(arguments.length===1){if(arguments[0]instanceof Ge){var t=arguments[0];return this.selfDivide(t._hi,t._lo)}else if(typeof arguments[0]=="number"){var e=arguments[0];return this.selfDivide(e,0)}}else if(arguments.length===2){var n=arguments[0],r=arguments[1],i=null,a=null,c=null,l=null,m=null,b=null,S=null,E=null;return m=this._hi/n,b=Ge.SPLIT*m,i=b-m,E=Ge.SPLIT*n,i=b-i,a=m-i,c=E-n,S=m*n,c=E-c,l=n-c,E=i*c-S+i*l+a*c+a*l,b=(this._hi-S-E+this._lo-m*r)/n,E=m+b,this._hi=E,this._lo=m-E+b,this}};Ge.prototype.dump=function(){return"DD<"+this._hi+", "+this._lo+">"};Ge.prototype.divide=function(){if(arguments[0]instanceof Ge){var t=arguments[0],e=null,n=null,r=null,i=null,a=null,c=null,l=null,m=null;a=this._hi/t._hi,c=Ge.SPLIT*a,e=c-a,m=Ge.SPLIT*t._hi,e=c-e,n=a-e,r=m-t._hi,l=a*t._hi,r=m-r,i=t._hi-r,m=e*r-l+e*i+n*r+n*i,c=(this._hi-l-m+this._lo-a*t._lo)/t._hi,m=a+c;var b=m,S=a-m+c;return new Ge(b,S)}else if(typeof arguments[0]=="number"){var E=arguments[0];return on.isNaN(E)?Ge.createNaN():Ge.copy(this).selfDivide(E,0)}};Ge.prototype.ge=function(t){return(this._hi>t._hi||this._hi===t._hi)&&this._lo>=t._lo};Ge.prototype.pow=function(t){if(t===0)return Ge.valueOf(1);var e=new Ge(this),n=Ge.valueOf(1),r=Math.abs(t);if(r>1)for(;r>0;)r%2===1&&n.selfMultiply(e),r/=2,r>0&&(e=e.sqr());else n=e;return t<0?n.reciprocal():n};Ge.prototype.ceil=function(){if(this.isNaN())return Ge.NaN;var t=Math.ceil(this._hi),e=0;return t===this._hi&&(e=Math.ceil(this._lo)),new Ge(t,e)};Ge.prototype.compareTo=function(t){var e=t;return this._hie._hi?1:this._loe._lo?1:0};Ge.prototype.rint=function(){if(this.isNaN())return this;var t=this.add(.5);return t.floor()};Ge.prototype.setValue=function(){if(arguments[0]instanceof Ge){var t=arguments[0];return this.init(t),this}else if(typeof arguments[0]=="number"){var e=arguments[0];return this.init(e),this}};Ge.prototype.max=function(t){return this.ge(t)?this:t};Ge.prototype.sqrt=function(){if(this.isZero())return Ge.valueOf(0);if(this.isNegative())return Ge.NaN;var t=1/Math.sqrt(this._hi),e=this._hi*t,n=Ge.valueOf(e),r=this.subtract(n.sqr()),i=r._hi*(t*.5);return n.add(i)};Ge.prototype.selfAdd=function(){if(arguments.length===1){if(arguments[0]instanceof Ge){var t=arguments[0];return this.selfAdd(t._hi,t._lo)}else if(typeof arguments[0]=="number"){var e=arguments[0],n=null,r=null,i=null,a=null,c=null,l=null;return i=this._hi+e,c=i-this._hi,a=i-c,a=e-c+(this._hi-a),l=a+this._lo,n=i+l,r=l+(i-n),this._hi=n+r,this._lo=r+(n-this._hi),this}}else if(arguments.length===2){var m=arguments[0],b=arguments[1],S=null,E=null,T=null,A=null,D=null,O=null,z=null,G=null;D=this._hi+m,T=this._lo+b,z=D-this._hi,G=T-this._lo,O=D-z,A=T-G,O=m-z+(this._hi-O),A=b-G+(this._lo-A),z=O+T,S=D+z,E=z+(D-S),z=A+E;var F=S+z,j=z+(S-F);return this._hi=F,this._lo=j,this}};Ge.prototype.selfMultiply=function(){if(arguments.length===1){if(arguments[0]instanceof Ge){var t=arguments[0];return this.selfMultiply(t._hi,t._lo)}else if(typeof arguments[0]=="number"){var e=arguments[0];return this.selfMultiply(e,0)}}else if(arguments.length===2){var n=arguments[0],r=arguments[1],i=null,a=null,c=null,l=null,m=null,b=null;m=Ge.SPLIT*this._hi,i=m-this._hi,b=Ge.SPLIT*n,i=m-i,a=this._hi-i,c=b-n,m=this._hi*n,c=b-c,l=n-c,b=i*c-m+i*l+a*c+a*l+(this._hi*r+this._lo*n);var S=m+b;i=m-S;var E=b+i;return this._hi=S,this._lo=E,this}};Ge.prototype.selfSqr=function(){return this.selfMultiply(this)};Ge.prototype.floor=function(){if(this.isNaN())return Ge.NaN;var t=Math.floor(this._hi),e=0;return t===this._hi&&(e=Math.floor(this._lo)),new Ge(t,e)};Ge.prototype.negate=function(){return this.isNaN()?this:new Ge(-this._hi,-this._lo)};Ge.prototype.clone=function(){};Ge.prototype.multiply=function(){if(arguments[0]instanceof Ge){var t=arguments[0];return t.isNaN()?Ge.createNaN():Ge.copy(this).selfMultiply(t)}else if(typeof arguments[0]=="number"){var e=arguments[0];return on.isNaN(e)?Ge.createNaN():Ge.copy(this).selfMultiply(e,0)}};Ge.prototype.isNaN=function(){return on.isNaN(this._hi)};Ge.prototype.intValue=function(){return Math.trunc(this._hi)};Ge.prototype.toString=function(){var t=Ge.magnitude(this._hi);return t>=-3&&t<=20?this.toStandardNotation():this.toSciNotation()};Ge.prototype.toStandardNotation=function(){var t=this.getSpecialNumberString();if(t!==null)return t;var e=new Array(1).fill(null),n=this.extractSignificantDigits(!0,e),r=e[0]+1,i=n;if(n.charAt(0)===".")i="0"+n;else if(r<0)i="0."+Ge.stringOfChar("0",-r)+n;else if(n.indexOf(".")===-1){var a=r-n.length,c=Ge.stringOfChar("0",a);i=n+c+".0"}return this.isNegative()?"-"+i:i};Ge.prototype.reciprocal=function(){var t=null,e=null,n=null,r=null,i=null,a=null,c=null,l=null;i=1/this._hi,a=Ge.SPLIT*i,t=a-i,l=Ge.SPLIT*this._hi,t=a-t,e=i-t,n=l-this._hi,c=i*this._hi,n=l-n,r=this._hi-n,l=t*n-c+t*r+e*n+e*r,a=(1-c-l-i*this._lo)/this._hi;var m=i+a,b=i-m+a;return new Ge(m,b)};Ge.prototype.toSciNotation=function(){if(this.isZero())return Ge.SCI_NOT_ZERO;var t=this.getSpecialNumberString();if(t!==null)return t;var e=new Array(1).fill(null),n=this.extractSignificantDigits(!1,e),r=Ge.SCI_NOT_EXPONENT_CHAR+e[0];if(n.charAt(0)==="0")throw new Error("Found leading zero: "+n);var i="";n.length>1&&(i=n.substring(1));var a=n.charAt(0)+"."+i;return this.isNegative()?"-"+a+r:a+r};Ge.prototype.abs=function(){return this.isNaN()?Ge.NaN:this.isNegative()?this.negate():new Ge(this)};Ge.prototype.isPositive=function(){return(this._hi>0||this._hi===0)&&this._lo>0};Ge.prototype.lt=function(t){return(this._hit._hi||this._hi===t._hi)&&this._lo>t._lo};Ge.prototype.isNegative=function(){return(this._hi<0||this._hi===0)&&this._lo<0};Ge.prototype.trunc=function(){return this.isNaN()?Ge.NaN:this.isPositive()?this.floor():this.ceil()};Ge.prototype.signum=function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0};Ge.prototype.interfaces_=function(){return[Es,Ss,ly]};Ge.prototype.getClass=function(){return Ge};Ge.sqr=function(t){return Ge.valueOf(t).selfMultiply(t)};Ge.valueOf=function(){if(typeof arguments[0]=="string"){var t=arguments[0];return Ge.parse(t)}else if(typeof arguments[0]=="number"){var e=arguments[0];return new Ge(e)}};Ge.sqrt=function(t){return Ge.valueOf(t).sqrt()};Ge.parse=function(t){for(var e=0,n=t.length;Yd.isWhitespace(t.charAt(e));)e++;var r=!1;if(e=n);){var b=t.charAt(e);if(e++,Yd.isDigit(b)){var S=b-"0";a.selfMultiply(Ge.TEN),a.selfAdd(S),c++;continue}if(b==="."){l=c;continue}if(b==="e"||b==="E"){var E=t.substring(e);try{m=ma.parseInt(E)}catch(z){throw z instanceof Error?new Error("Invalid exponent "+E+" in string "+t):z}finally{}break}throw new Error("Unexpected character '"+b+"' at position "+e+" in string "+t)}var T=a,A=c-l-m;if(A===0)T=a;else if(A>0){var D=Ge.TEN.pow(A);T=a.divide(D)}else if(A<0){var O=Ge.TEN.pow(-A);T=a.multiply(O)}return r?T.negate():T};Ge.createNaN=function(){return new Ge(on.NaN,on.NaN)};Ge.copy=function(t){return new Ge(t)};Ge.magnitude=function(t){var e=Math.abs(t),n=Math.log(e)/Math.log(10),r=Math.trunc(Math.floor(n)),i=Math.pow(10,r);return i*10<=e&&(r+=1),r};Ge.stringOfChar=function(t,e){for(var n=new La,r=0;r0){if(a<=0)return go.signum(c);r=i+a}else if(i<0){if(a>=0)return go.signum(c);r=-i-a}else return go.signum(c);var l=go.DP_SAFE_EPSILON*r;return c>=l||-c>=l?go.signum(c):2};go.signum=function(t){return t>0?1:t<0?-1:0};uC.DP_SAFE_EPSILON.get=function(){return 1e-15};Object.defineProperties(go,uC);var Mn=function(){},vm={X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0},M:{configurable:!0}};vm.X.get=function(){return 0};vm.Y.get=function(){return 1};vm.Z.get=function(){return 2};vm.M.get=function(){return 3};Mn.prototype.setOrdinate=function(t,e,n){};Mn.prototype.size=function(){};Mn.prototype.getOrdinate=function(t,e){};Mn.prototype.getCoordinate=function(){};Mn.prototype.getCoordinateCopy=function(t){};Mn.prototype.getDimension=function(){};Mn.prototype.getX=function(t){};Mn.prototype.clone=function(){};Mn.prototype.expandEnvelope=function(t){};Mn.prototype.copy=function(){};Mn.prototype.getY=function(t){};Mn.prototype.toCoordinateArray=function(){};Mn.prototype.interfaces_=function(){return[ly]};Mn.prototype.getClass=function(){return Mn};Object.defineProperties(Mn,vm);var cC=function(){},lp=function(t){function e(){t.call(this,"Projective point not representable on the Cartesian plane.")}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(cC),ki=function(){};ki.arraycopy=function(t,e,n,r,i){for(var a=0,c=e;ct._minx?this._minx:t._minx,n=this._miny>t._miny?this._miny:t._miny,r=this._maxx=this._minx&&e.getMaxX()<=this._maxx&&e.getMinY()>=this._miny&&e.getMaxY()<=this._maxy}}else if(arguments.length===2){var n=arguments[0],r=arguments[1];return this.isNull()?!1:n>=this._minx&&n<=this._maxx&&r>=this._miny&&r<=this._maxy}};Ot.prototype.intersects=function(){if(arguments.length===1){if(arguments[0]instanceof Ot){var t=arguments[0];return this.isNull()||t.isNull()?!1:!(t._minx>this._maxx||t._maxxthis._maxy||t._maxythis._maxx||nthis._maxy||rthis._maxx&&(this._maxx=e._maxx),e._minythis._maxy&&(this._maxy=e._maxy))}}else if(arguments.length===2){var n=arguments[0],r=arguments[1];this.isNull()?(this._minx=n,this._maxx=n,this._miny=r,this._maxy=r):(nthis._maxx&&(this._maxx=n),rthis._maxy&&(this._maxy=r))}};Ot.prototype.minExtent=function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return te._minx?1:this._minye._miny?1:this._maxxe._maxx?1:this._maxye._maxy?1:0};Ot.prototype.translate=function(t,e){if(this.isNull())return null;this.init(this.getMinX()+t,this.getMaxX()+t,this.getMinY()+e,this.getMaxY()+e)};Ot.prototype.toString=function(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"};Ot.prototype.setToNull=function(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1};Ot.prototype.getHeight=function(){return this.isNull()?0:this._maxy-this._miny};Ot.prototype.maxExtent=function(){if(this.isNull())return 0;var t=this.getWidth(),e=this.getHeight();return t>e?t:e};Ot.prototype.expandBy=function(){if(arguments.length===1){var t=arguments[0];this.expandBy(t,t)}else if(arguments.length===2){var e=arguments[0],n=arguments[1];if(this.isNull())return null;this._minx-=e,this._maxx+=e,this._miny-=n,this._maxy+=n,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}};Ot.prototype.contains=function(){if(arguments.length===1){if(arguments[0]instanceof Ot){var t=arguments[0];return this.covers(t)}else if(arguments[0]instanceof Re){var e=arguments[0];return this.covers(e)}}else if(arguments.length===2){var n=arguments[0],r=arguments[1];return this.covers(n,r)}};Ot.prototype.centre=function(){return this.isNull()?null:new Re((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)};Ot.prototype.init=function(){if(arguments.length===0)this.setToNull();else if(arguments.length===1){if(arguments[0]instanceof Re){var t=arguments[0];this.init(t.x,t.x,t.y,t.y)}else if(arguments[0]instanceof Ot){var e=arguments[0];this._minx=e._minx,this._maxx=e._maxx,this._miny=e._miny,this._maxy=e._maxy}}else if(arguments.length===2){var n=arguments[0],r=arguments[1];this.init(n.x,r.x,n.y,r.y)}else if(arguments.length===4){var i=arguments[0],a=arguments[1],c=arguments[2],l=arguments[3];it._maxx&&(e=this._minx-t._maxx);var n=0;return this._maxyt._maxy&&(n=this._miny-t._maxy),e===0?n:n===0?e:Math.sqrt(e*e+n*n)};Ot.prototype.hashCode=function(){var t=17;return t=37*t+Re.hashCode(this._minx),t=37*t+Re.hashCode(this._maxx),t=37*t+Re.hashCode(this._miny),t=37*t+Re.hashCode(this._maxy),t};Ot.prototype.interfaces_=function(){return[Ss,Es]};Ot.prototype.getClass=function(){return Ot};Ot.intersects=function(){if(arguments.length===3){var t=arguments[0],e=arguments[1],n=arguments[2];return n.x>=(t.xe.x?t.x:e.x)&&n.y>=(t.ye.y?t.y:e.y)}else if(arguments.length===4){var r=arguments[0],i=arguments[1],a=arguments[2],c=arguments[3],l=Math.min(a.x,c.x),m=Math.max(a.x,c.x),b=Math.min(r.x,i.x),S=Math.max(r.x,i.x);return!(b>m||Sm)||Sn?(this._intLineIndex[t][0]=0,this._intLineIndex[t][1]=1):(this._intLineIndex[t][0]=1,this._intLineIndex[t][1]=0)}};xr.prototype.isProper=function(){return this.hasIntersection()&&this._isProper};xr.prototype.setPrecisionModel=function(t){this._precisionModel=t};xr.prototype.isInteriorIntersection=function(){var t=this;if(arguments.length===0)return!!(this.isInteriorIntersection(0)||this.isInteriorIntersection(1));if(arguments.length===1){for(var e=arguments[0],n=0;ni?a=r:a=i;else{var c=Math.abs(t.x-e.x),l=Math.abs(t.y-e.y);r>i?a=c:a=l,a===0&&!t.equals(e)&&(a=Math.max(c,l))}return fn.isTrue(!(a===0&&!t.equals(e)),"Bad distance calculation"),a};xr.nonRobustComputeEdgeDistance=function(t,e,n){var r=t.x-e.x,i=t.y-e.y,a=Math.sqrt(r*r+i*i);return fn.isTrue(!(a===0&&!t.equals(e)),"Invalid distance calculation"),a};ch.DONT_INTERSECT.get=function(){return 0};ch.DO_INTERSECT.get=function(){return 1};ch.COLLINEAR.get=function(){return 2};ch.NO_INTERSECTION.get=function(){return 0};ch.POINT_INTERSECTION.get=function(){return 1};ch.COLLINEAR_INTERSECTION.get=function(){return 2};Object.defineProperties(xr,ch);var uc=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isInSegmentEnvelopes=function(n){var r=new Ot(this._inputLines[0][0],this._inputLines[0][1]),i=new Ot(this._inputLines[1][0],this._inputLines[1][1]);return r.contains(n)&&i.contains(n)},e.prototype.computeIntersection=function(){if(arguments.length===3){var n=arguments[0],r=arguments[1],i=arguments[2];if(this._isProper=!1,Ot.intersects(r,i,n)&&wt.orientationIndex(r,i,n)===0&&wt.orientationIndex(i,r,n)===0)return this._isProper=!0,(n.equals(r)||n.equals(i))&&(this._isProper=!1),this._result=t.POINT_INTERSECTION,null;this._result=t.NO_INTERSECTION}else return t.prototype.computeIntersection.apply(this,arguments)},e.prototype.normalizeToMinimum=function(n,r,i,a,c){c.x=this.smallestInAbsValue(n.x,r.x,i.x,a.x),c.y=this.smallestInAbsValue(n.y,r.y,i.y,a.y),n.x-=c.x,n.y-=c.y,r.x-=c.x,r.y-=c.y,i.x-=c.x,i.y-=c.y,a.x-=c.x,a.y-=c.y},e.prototype.safeHCoordinateIntersection=function(n,r,i,a){var c=null;try{c=Bs.intersection(n,r,i,a)}catch(l){if(l instanceof lp)c=e.nearestEndpoint(n,r,i,a);else throw l}finally{}return c},e.prototype.intersection=function(n,r,i,a){var c=this.intersectionWithNormalization(n,r,i,a);return this.isInSegmentEnvelopes(c)||(c=new Re(e.nearestEndpoint(n,r,i,a))),this._precisionModel!==null&&this._precisionModel.makePrecise(c),c},e.prototype.smallestInAbsValue=function(n,r,i,a){var c=n,l=Math.abs(c);return Math.abs(r)1e-4&&ki.out.println("Distance = "+c.distance(l))},e.prototype.intersectionWithNormalization=function(n,r,i,a){var c=new Re(n),l=new Re(r),m=new Re(i),b=new Re(a),S=new Re;this.normalizeToEnvCentre(c,l,m,b,S);var E=this.safeHCoordinateIntersection(c,l,m,b);return E.x+=S.x,E.y+=S.y,E},e.prototype.computeCollinearIntersection=function(n,r,i,a){var c=Ot.intersects(n,r,i),l=Ot.intersects(n,r,a),m=Ot.intersects(i,a,n),b=Ot.intersects(i,a,r);return c&&l?(this._intPt[0]=i,this._intPt[1]=a,t.COLLINEAR_INTERSECTION):m&&b?(this._intPt[0]=n,this._intPt[1]=r,t.COLLINEAR_INTERSECTION):c&&m?(this._intPt[0]=i,this._intPt[1]=n,i.equals(n)&&!l&&!b?t.POINT_INTERSECTION:t.COLLINEAR_INTERSECTION):c&&b?(this._intPt[0]=i,this._intPt[1]=r,i.equals(r)&&!l&&!m?t.POINT_INTERSECTION:t.COLLINEAR_INTERSECTION):l&&m?(this._intPt[0]=a,this._intPt[1]=n,a.equals(n)&&!c&&!b?t.POINT_INTERSECTION:t.COLLINEAR_INTERSECTION):l&&b?(this._intPt[0]=a,this._intPt[1]=r,a.equals(r)&&!c&&!m?t.POINT_INTERSECTION:t.COLLINEAR_INTERSECTION):t.NO_INTERSECTION},e.prototype.normalizeToEnvCentre=function(n,r,i,a,c){var l=n.xr.x?n.x:r.x,S=n.y>r.y?n.y:r.y,E=i.xa.x?i.x:a.x,D=i.y>a.y?i.y:a.y,O=l>E?l:E,z=bT?m:T,F=S0&&l>0||c<0&&l<0)return t.NO_INTERSECTION;var m=wt.orientationIndex(i,a,n),b=wt.orientationIndex(i,a,r);if(m>0&&b>0||m<0&&b<0)return t.NO_INTERSECTION;var S=c===0&&l===0&&m===0&&b===0;return S?this.computeCollinearIntersection(n,r,i,a):(c===0||l===0||m===0||b===0?(this._isProper=!1,n.equals2D(i)||n.equals2D(a)?this._intPt[0]=n:r.equals2D(i)||r.equals2D(a)?this._intPt[0]=r:c===0?this._intPt[0]=new Re(i):l===0?this._intPt[0]=new Re(a):m===0?this._intPt[0]=new Re(n):b===0&&(this._intPt[0]=new Re(r))):(this._isProper=!0,this._intPt[0]=this.intersection(n,r,i,a)),t.POINT_INTERSECTION)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e.nearestEndpoint=function(n,r,i,a){var c=n,l=wt.distancePointLine(n,i,a),m=wt.distancePointLine(r,i,a);return m0?n>0?-i:i:n>0?i:-i;if(e===0||n===0)return r>0?t>0?i:-i:t>0?-i:i;if(e>0?r>0?e<=r||(i=-i,a=t,t=n,n=a,a=e,e=r,r=a):e<=-r?(i=-i,n=-n,r=-r):(a=t,t=-n,n=a,a=e,e=-r,r=a):r>0?-e<=r?(i=-i,t=-t,e=-e):(a=-t,t=n,n=a,a=-e,e=r,r=a):e>=r?(t=-t,e=-e,n=-n,r=-r):(i=-i,a=-t,t=-n,n=a,a=-e,e=-r,r=a),t>0)if(n>0){if(!(t<=n))return i}else return i;else{if(n>0)return-i;if(t>=n)i=-i,t=-t,n=-n;else return-i}for(;;){if(c=Math.floor(n/t),n=n-c*t,r=r-c*e,r<0)return-i;if(r>e)return i;if(t>n+n){if(er+r)return-i;n=t-n,r=e-r,i=-i}if(r===0)return n===0?0:-i;if(n===0||(c=Math.floor(t/n),t=t-c*n,e=e-c*r,e<0))return i;if(e>r)return-i;if(n>t+t){if(re+e)return i;t=n-t,e=r-e,i=-i}if(e===0)return t===0?0:i;if(t===0)return-i}};var pa=function(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var t=arguments[0];this._p=t};pa.prototype.countSegment=function(t,e){if(t.xr&&(n=e.x,r=t.x),this._p.x>=n&&this._p.x<=r&&(this._isPointOnSegment=!0),null}if(t.y>this._p.y&&e.y<=this._p.y||e.y>this._p.y&&t.y<=this._p.y){var i=t.x-this._p.x,a=t.y-this._p.y,c=e.x-this._p.x,l=e.y-this._p.y,m=Hc.signOfDet2x2(i,a,c,l);if(m===0)return this._isPointOnSegment=!0,null;l0&&this._crossingCount++}};pa.prototype.isPointInPolygon=function(){return this.getLocation()!==Oe.EXTERIOR};pa.prototype.getLocation=function(){return this._isPointOnSegment?Oe.BOUNDARY:this._crossingCount%2===1?Oe.INTERIOR:Oe.EXTERIOR};pa.prototype.isOnSegment=function(){return this._isPointOnSegment};pa.prototype.interfaces_=function(){return[]};pa.prototype.getClass=function(){return pa};pa.locatePointInRing=function(){if(arguments[0]instanceof Re&&Wt(arguments[1],Mn)){for(var t=arguments[0],e=arguments[1],n=new pa(t),r=new Re,i=new Re,a=1;a1||m<0||m>1)&&(i=!0)}}return i?ns.min(wt.distancePointLine(t,n,r),wt.distancePointLine(e,n,r),wt.distancePointLine(n,t,e),wt.distancePointLine(r,t,e)):0};wt.isPointInRing=function(t,e){return wt.locatePointInRing(t,e)!==Oe.EXTERIOR};wt.computeLength=function(t){var e=t.size();if(e<=1)return 0;var n=0,r=new Re;t.getCoordinate(0,r);for(var i=r.x,a=r.y,c=1;cn.y&&(n=a,r=i)}var c=r;do c=c-1,c<0&&(c=e);while(t[c].equals2D(n)&&c!==r);var l=r;do l=(l+1)%e;while(t[l].equals2D(n)&&l!==r);var m=t[c],b=t[l];if(m.equals2D(n)||b.equals2D(n)||m.equals2D(b))return!1;var S=wt.computeOrientation(m,n,b),E=!1;return S===0?E=m.x>b.x:E=S>0,E};wt.locatePointInRing=function(t,e){return pa.locatePointInRing(t,e)};wt.distancePointLinePerpendicular=function(t,e,n){var r=(n.x-e.x)*(n.x-e.x)+(n.y-e.y)*(n.y-e.y),i=((e.y-t.y)*(n.x-e.x)-(e.x-t.x)*(n.y-e.y))/r;return Math.abs(i)*Math.sqrt(r)};wt.computeOrientation=function(t,e,n){return wt.orientationIndex(t,e,n)};wt.distancePointLine=function(){if(arguments.length===2){var t=arguments[0],e=arguments[1];if(e.length===0)throw new gr("Line array must contain at least one vertex");for(var n=t.distance(e[0]),r=0;r=1)return a.distance(l);var S=((c.y-a.y)*(l.x-c.x)-(c.x-a.x)*(l.y-c.y))/m;return Math.abs(S)*Math.sqrt(m)}};wt.isOnLine=function(t,e){for(var n=new uc,r=1;r0};Rf.prototype.interfaces_=function(){return[bs]};Rf.prototype.getClass=function(){return Rf};var Nf=function(){};Nf.prototype.isInBoundary=function(t){return t>1};Nf.prototype.interfaces_=function(){return[bs]};Nf.prototype.getClass=function(){return Nf};var Of=function(){};Of.prototype.isInBoundary=function(t){return t===1};Of.prototype.interfaces_=function(){return[bs]};Of.prototype.getClass=function(){return Of};var Yr=function(){};Yr.prototype.add=function(){};Yr.prototype.addAll=function(){};Yr.prototype.isEmpty=function(){};Yr.prototype.iterator=function(){};Yr.prototype.size=function(){};Yr.prototype.toArray=function(){};Yr.prototype.remove=function(){};function O1(t){this.message=t||""}O1.prototype=new Error;O1.prototype.name="IndexOutOfBoundsException";var up=function(){};up.prototype.hasNext=function(){};up.prototype.next=function(){};up.prototype.remove=function(){};var Vs=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(){},e.prototype.set=function(){},e.prototype.isEmpty=function(){},e}(Yr);function cp(t){this.message=t||""}cp.prototype=new Error;cp.prototype.name="NoSuchElementException";var _t=function(t){function e(){t.call(this),this.array_=[],arguments[0]instanceof Yr&&this.addAll(arguments[0])}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.ensureCapacity=function(){},e.prototype.interfaces_=function(){return[t,Yr]},e.prototype.add=function(n){return arguments.length===1?this.array_.push(n):this.array_.splice(arguments[0],arguments[1]),!0},e.prototype.clear=function(){this.array_=[]},e.prototype.addAll=function(n){for(var r=this,i=n.iterator();i.hasNext();)r.add(i.next());return!0},e.prototype.set=function(n,r){var i=this.array_[n];return this.array_[n]=r,i},e.prototype.iterator=function(){return new zN(this)},e.prototype.get=function(n){if(n<0||n>=this.size())throw new O1;return this.array_[n]},e.prototype.isEmpty=function(){return this.array_.length===0},e.prototype.size=function(){return this.array_.length},e.prototype.toArray=function(){for(var n=this,r=[],i=0,a=this.array_.length;i=1){var b=this.get(this.size()-1);if(b.equals2D(l))return null}t.prototype.add.call(this,l)}else if(arguments[0]instanceof Object&&typeof arguments[1]=="boolean"){var S=arguments[0],E=arguments[1];return this.add(S,E),!0}}else if(arguments.length===3){if(typeof arguments[2]=="boolean"&&arguments[0]instanceof Array&&typeof arguments[1]=="boolean"){var T=arguments[0],A=arguments[1],D=arguments[2];if(D)for(var O=0;O=0;z--)r.add(T[z],A);return!0}else if(typeof arguments[2]=="boolean"&&Number.isInteger(arguments[0])&&arguments[1]instanceof Re){var G=arguments[0],F=arguments[1],j=arguments[2];if(!j){var Z=this.size();if(Z>0){if(G>0){var J=this.get(G-1);if(J.equals2D(F))return null}if(GAe&&(me=-1);for(var Ee=ae;Ee!==Ae;Ee+=me)r.add(re[Ee],ye);return!0}},e.prototype.closeRing=function(){this.size()>0&&this.add(new Re(this.get(0)),!1)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},Object.defineProperties(e,n),e}(_t),xn=function(){},cy={ForwardComparator:{configurable:!0},BidirectionalComparator:{configurable:!0},coordArrayType:{configurable:!0}};cy.ForwardComparator.get=function(){return Kd};cy.BidirectionalComparator.get=function(){return zf};cy.coordArrayType.get=function(){return new Array(0).fill(null)};xn.prototype.interfaces_=function(){return[]};xn.prototype.getClass=function(){return xn};xn.isRing=function(t){return!(t.length<4||!t[0].equals2D(t[t.length-1]))};xn.ptNotInList=function(t,e){for(var n=0;n=t?e:[]};xn.indexOf=function(t,e){for(var n=0;n0)&&(e=t[n]);return e};xn.extract=function(t,e,n){e=ns.clamp(e,0,t.length),n=ns.clamp(n,-1,t.length);var r=n-e+1;n<0&&(r=0),e>=t.length&&(r=0),nr.length)return 1;if(n.length===0)return 0;var i=xn.compare(n,r),a=xn.isEqualReversed(n,r);return a?0:i};zf.prototype.OLDcompare=function(t,e){var n=t,r=e;if(n.lengthr.length)return 1;if(n.length===0)return 0;for(var i=xn.increasingDirection(n),a=xn.increasingDirection(r),c=i>0?0:n.length-1,l=a>0?0:n.length-1,m=0;m0)e=e.right;else return e.value}return null};Gi.prototype.put=function(t,e){if(this.root_===null)return this.root_={key:t,value:e,left:null,right:null,parent:null,color:yl,getValue:function(){return this.value},getKey:function(){return this.key}},this.size_=1,null;var n=this.root_,r,i;do if(r=n,i=t.compareTo(n.key),i<0)n=n.left;else if(i>0)n=n.right;else{var a=n.value;return n.value=e,a}while(n!==null);var c={key:t,left:null,right:null,value:e,parent:r,color:yl,getValue:function(){return this.value},getKey:function(){return this.key}};return i<0?r.left=c:r.right=c,this.fixAfterInsertion(c),this.size_++,null};Gi.prototype.fixAfterInsertion=function(t){var e=this;for(t.color=zu;t!=null&&t!==this.root_&&t.parent.color===zu;)if(Qn(t)===nv(Qn(Qn(t)))){var n=X2(Qn(Qn(t)));H2(n)===zu?(pl(Qn(t),yl),pl(n,yl),pl(Qn(Qn(t)),zu),t=Qn(Qn(t))):(t===X2(Qn(t))&&(t=Qn(t),e.rotateLeft(t)),pl(Qn(t),yl),pl(Qn(Qn(t)),zu),e.rotateRight(Qn(Qn(t))))}else{var r=nv(Qn(Qn(t)));H2(r)===zu?(pl(Qn(t),yl),pl(r,yl),pl(Qn(Qn(t)),zu),t=Qn(Qn(t))):(t===nv(Qn(t))&&(t=Qn(t),e.rotateRight(t)),pl(Qn(t),yl),pl(Qn(Qn(t)),zu),e.rotateLeft(Qn(Qn(t))))}this.root_.color=yl};Gi.prototype.values=function(){var t=new _t,e=this.getFirstEntry();if(e!==null)for(t.add(e.value);(e=Gi.successor(e))!==null;)t.add(e.value);return t};Gi.prototype.entrySet=function(){var t=new z1,e=this.getFirstEntry();if(e!==null)for(t.add(e);(e=Gi.successor(e))!==null;)t.add(e);return t};Gi.prototype.rotateLeft=function(t){if(t!=null){var e=t.right;t.right=e.left,e.left!=null&&(e.left.parent=t),e.parent=t.parent,t.parent===null?this.root_=e:t.parent.left===t?t.parent.left=e:t.parent.right=e,e.left=t,t.parent=e}};Gi.prototype.rotateRight=function(t){if(t!=null){var e=t.left;t.left=e.right,e.right!=null&&(e.right.parent=t),e.parent=t.parent,t.parent===null?this.root_=e:t.parent.right===t?t.parent.right=e:t.parent.left=e,e.right=t,t.parent=e}};Gi.prototype.getFirstEntry=function(){var t=this.root_;if(t!=null)for(;t.left!=null;)t=t.left;return t};Gi.successor=function(t){if(t===null)return null;if(t.right!==null){for(var e=t.right;e.left!==null;)e=e.left;return e}else{for(var n=t.parent,r=t;n!==null&&r===n.right;)r=n,n=n.parent;return n}};Gi.prototype.size=function(){return this.size_};var Jd=function(){};Jd.prototype.interfaces_=function(){return[]};Jd.prototype.getClass=function(){return Jd};function fC(){}fC.prototype=new hy;function ga(){this.array_=[],arguments[0]instanceof Yr&&this.addAll(arguments[0])}ga.prototype=new fC;ga.prototype.contains=function(t){for(var e=this,n=0,r=this.array_.length;n=0;){var c=i.substring(0,a);r.add(c),i=i.substring(a+n),a=i.indexOf(e)}i.length>0&&r.add(i);for(var l=new Array(r.size()).fill(null),m=0;m0)for(var a=i;a0&&r.append(" ");for(var a=0;a0&&r.append(","),r.append(gs.toString(t.getOrdinate(i,a)))}return r.append(")"),r.toString()}};Br.ensureValidRing=function(t,e){var n=e.size();if(n===0)return e;if(n<=3)return Br.createClosedRing(t,e,4);var r=e.getOrdinate(0,Mn.X)===e.getOrdinate(n-1,Mn.X)&&e.getOrdinate(0,Mn.Y)===e.getOrdinate(n-1,Mn.Y);return r?e:Br.createClosedRing(t,e,n+1)};Br.createClosedRing=function(t,e,n){var r=t.create(n,e.getDimension()),i=e.size();Br.copy(e,0,r,0,i);for(var a=i;a0&&Br.reverse(r._points),null}},e.prototype.getCoordinate=function(){return this.isEmpty()?null:this._points.getCoordinate(0)},e.prototype.getBoundaryDimension=function(){return this.isClosed()?Rn.FALSE:0},e.prototype.isClosed=function(){return this.isEmpty()?!1:this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))},e.prototype.getEndPoint=function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)},e.prototype.getDimension=function(){return 1},e.prototype.getLength=function(){return wt.computeLength(this._points)},e.prototype.getNumPoints=function(){return this._points.size()},e.prototype.reverse=function(){var r=this._points.copy();Br.reverse(r);var i=this.getFactory().createLineString(r);return i},e.prototype.compareToSameClass=function(){var r=this;if(arguments.length===1){for(var i=arguments[0],a=i,c=0,l=0;c= 2)");this._points=r},e.prototype.isCoordinate=function(r){for(var i=this,a=0;a=1&&this.getCoordinateSequence().size()= 4)")},e.prototype.getGeometryType=function(){return"LinearRing"},e.prototype.copy=function(){return new e(this._points.copy(),this._factory)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},n.MINIMUM_VALID_SIZE.get=function(){return 4},n.serialVersionUID.get=function(){return-0x3b229e262367a600},Object.defineProperties(e,n),e}(Ar),ja=function(t){function e(){t.apply(this,arguments)}t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e;var n={serialVersionUID:{configurable:!0}};return e.prototype.getSortIndex=function(){return qt.SORTINDEX_MULTIPOLYGON},e.prototype.equalsExact=function(){if(arguments.length===2){var r=arguments[0],i=arguments[1];return this.isEquivalentClass(r)?t.prototype.equalsExact.call(this,r,i):!1}else return t.prototype.equalsExact.apply(this,arguments)},e.prototype.getBoundaryDimension=function(){return 1},e.prototype.getDimension=function(){return 2},e.prototype.reverse=function(){for(var r=this,i=this._geometries.length,a=new Array(i).fill(null),c=0;c0?e.createPoint(n[0]):e.createPoint():t};tm.prototype.interfaces_=function(){return[xs.GeometryEditorOperation]};tm.prototype.getClass=function(){return tm};var nm=function(){};nm.prototype.edit=function(t,e){return t instanceof Wa?e.createLinearRing(this.edit(t.getCoordinateSequence(),t)):t instanceof Ar?e.createLineString(this.edit(t.getCoordinateSequence(),t)):t instanceof Do?e.createPoint(this.edit(t.getCoordinateSequence(),t)):t};nm.prototype.interfaces_=function(){return[xs.GeometryEditorOperation]};nm.prototype.getClass=function(){return nm};var zr=function(){var t=this;if(this._dimension=3,this._coordinates=null,arguments.length===1){if(arguments[0]instanceof Array)this._coordinates=arguments[0],this._dimension=3;else if(Number.isInteger(arguments[0])){var e=arguments[0];this._coordinates=new Array(e).fill(null);for(var n=0;n0){var e=new La(17*this._coordinates.length);e.append("("),e.append(this._coordinates[0]);for(var n=1;n3&&(r=3),r<2?new zr(n):new zr(n,r)}};Za.prototype.interfaces_=function(){return[kf,Es]};Za.prototype.getClass=function(){return Za};Za.instance=function(){return Za.instanceObject};B1.serialVersionUID.get=function(){return-0x38e49fa6cf6f2e00};B1.instanceObject.get=function(){return new Za};Object.defineProperties(Za,B1);var dC=function(t){function e(){t.call(this),this.map_=new Map}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.get=function(n){return this.map_.get(n)||null},e.prototype.put=function(n,r){return this.map_.set(n,r),r},e.prototype.values=function(){for(var n=new _t,r=this.map_.values(),i=r.next();!i.done;)n.add(i.value),i=r.next();return n},e.prototype.entrySet=function(){var n=new z1;return this.map_.entries().forEach(function(r){return n.add(r)}),n},e.prototype.size=function(){return this.map_.size()},e}(fh),On=function t(){if(this._modelType=null,this._scale=null,arguments.length===0)this._modelType=t.FLOATING;else if(arguments.length===1){if(arguments[0]instanceof ya){var e=arguments[0];this._modelType=e,e===t.FIXED&&this.setScale(1)}else if(typeof arguments[0]=="number"){var n=arguments[0];this._modelType=t.FIXED,this.setScale(n)}else if(arguments[0]instanceof t){var r=arguments[0];this._modelType=r._modelType,this._scale=r._scale}}},V1={serialVersionUID:{configurable:!0},maximumPreciseValue:{configurable:!0}};On.prototype.equals=function(t){if(!(t instanceof On))return!1;var e=t;return this._modelType===e._modelType&&this._scale===e._scale};On.prototype.compareTo=function(t){var e=t,n=this.getMaximumSignificantDigits(),r=e.getMaximumSignificantDigits();return new ma(n).compareTo(new ma(r))};On.prototype.getScale=function(){return this._scale};On.prototype.isFloating=function(){return this._modelType===On.FLOATING||this._modelType===On.FLOATING_SINGLE};On.prototype.getType=function(){return this._modelType};On.prototype.toString=function(){var t="UNKNOWN";return this._modelType===On.FLOATING?t="Floating":this._modelType===On.FLOATING_SINGLE?t="Floating-Single":this._modelType===On.FIXED&&(t="Fixed (Scale="+this.getScale()+")"),t};On.prototype.makePrecise=function(){if(typeof arguments[0]=="number"){var t=arguments[0];if(on.isNaN(t))return t;if(this._modelType===On.FLOATING_SINGLE){var e=t;return e}return this._modelType===On.FIXED?Math.round(t*this._scale)/this._scale:t}else if(arguments[0]instanceof Re){var n=arguments[0];if(this._modelType===On.FLOATING)return null;n.x=this.makePrecise(n.x),n.y=this.makePrecise(n.y)}};On.prototype.getMaximumSignificantDigits=function(){var t=16;return this._modelType===On.FLOATING?t=16:this._modelType===On.FLOATING_SINGLE?t=6:this._modelType===On.FIXED&&(t=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),t};On.prototype.setScale=function(t){this._scale=Math.abs(t)};On.prototype.interfaces_=function(){return[Es,Ss]};On.prototype.getClass=function(){return On};On.mostPrecise=function(t,e){return t.compareTo(e)>=0?t:e};V1.serialVersionUID.get=function(){return 7777263578777804e3};V1.maximumPreciseValue.get=function(){return 9007199254740992};Object.defineProperties(On,V1);var ya=function t(e){this._name=e||null,t.nameToTypeMap.put(e,this)},U1={serialVersionUID:{configurable:!0},nameToTypeMap:{configurable:!0}};ya.prototype.readResolve=function(){return ya.nameToTypeMap.get(this._name)};ya.prototype.toString=function(){return this._name};ya.prototype.interfaces_=function(){return[Es]};ya.prototype.getClass=function(){return ya};U1.serialVersionUID.get=function(){return-552860263173159e4};U1.nameToTypeMap.get=function(){return new dC};Object.defineProperties(ya,U1);On.Type=ya;On.FIXED=new ya("FIXED");On.FLOATING=new ya("FLOATING");On.FLOATING_SINGLE=new ya("FLOATING SINGLE");var bn=function t(){this._precisionModel=new On,this._SRID=0,this._coordinateSequenceFactory=t.getDefaultCoordinateSequenceFactory(),arguments.length===0||(arguments.length===1?Wt(arguments[0],kf)?this._coordinateSequenceFactory=arguments[0]:arguments[0]instanceof On&&(this._precisionModel=arguments[0]):arguments.length===2?(this._precisionModel=arguments[0],this._SRID=arguments[1]):arguments.length===3&&(this._precisionModel=arguments[0],this._SRID=arguments[1],this._coordinateSequenceFactory=arguments[2]))},mC={serialVersionUID:{configurable:!0}};bn.prototype.toGeometry=function(t){return t.isNull()?this.createPoint(null):t.getMinX()===t.getMaxX()&&t.getMinY()===t.getMaxY()?this.createPoint(new Re(t.getMinX(),t.getMinY())):t.getMinX()===t.getMaxX()||t.getMinY()===t.getMaxY()?this.createLineString([new Re(t.getMinX(),t.getMinY()),new Re(t.getMaxX(),t.getMaxY())]):this.createPolygon(this.createLinearRing([new Re(t.getMinX(),t.getMinY()),new Re(t.getMinX(),t.getMaxY()),new Re(t.getMaxX(),t.getMaxY()),new Re(t.getMaxX(),t.getMinY()),new Re(t.getMinX(),t.getMinY())]),null)};bn.prototype.createLineString=function(t){if(t){if(t instanceof Array)return new Ar(this.getCoordinateSequenceFactory().create(t),this);if(Wt(t,Mn))return new Ar(t,this)}else return new Ar(this.getCoordinateSequenceFactory().create([]),this)};bn.prototype.createMultiLineString=function(){if(arguments.length===0)return new Xu(null,this);if(arguments.length===1){var t=arguments[0];return new Xu(t,this)}};bn.prototype.buildGeometry=function(t){for(var e=null,n=!1,r=!1,i=t.iterator();i.hasNext();){var a=i.next(),c=a.getClass();e===null&&(e=c),c!==e&&(n=!0),a.isGeometryCollectionOrDerived()&&(r=!0)}if(e===null)return this.createGeometryCollection();if(n||r)return this.createGeometryCollection(bn.toGeometryArray(t));var l=t.iterator().next(),m=t.size()>1;if(m){if(l instanceof ei)return this.createMultiPolygon(bn.toPolygonArray(t));if(l instanceof Ar)return this.createMultiLineString(bn.toLineStringArray(t));if(l instanceof Do)return this.createMultiPoint(bn.toPointArray(t));fn.shouldNeverReachHere("Unhandled class: "+l.getClass().getName())}return l};bn.prototype.createMultiPointFromCoords=function(t){return this.createMultiPoint(t!==null?this.getCoordinateSequenceFactory().create(t):null)};bn.prototype.createPoint=function(){if(arguments.length===0)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(arguments.length===1){if(arguments[0]instanceof Re){var t=arguments[0];return this.createPoint(t!==null?this.getCoordinateSequenceFactory().create([t]):null)}else if(Wt(arguments[0],Mn)){var e=arguments[0];return new Do(e,this)}}};bn.prototype.getCoordinateSequenceFactory=function(){return this._coordinateSequenceFactory};bn.prototype.createPolygon=function(){if(arguments.length===0)return new ei(null,null,this);if(arguments.length===1){if(Wt(arguments[0],Mn)){var t=arguments[0];return this.createPolygon(this.createLinearRing(t))}else if(arguments[0]instanceof Array){var e=arguments[0];return this.createPolygon(this.createLinearRing(e))}else if(arguments[0]instanceof Wa){var n=arguments[0];return this.createPolygon(n,null)}}else if(arguments.length===2){var r=arguments[0],i=arguments[1];return new ei(r,i,this)}};bn.prototype.getSRID=function(){return this._SRID};bn.prototype.createGeometryCollection=function(){if(arguments.length===0)return new no(null,this);if(arguments.length===1){var t=arguments[0];return new no(t,this)}};bn.prototype.createGeometry=function(t){var e=new xs(this);return e.edit(t,{edit:function(){if(arguments.length===2){var n=arguments[0];return this._coordinateSequenceFactory.create(n)}}})};bn.prototype.getPrecisionModel=function(){return this._precisionModel};bn.prototype.createLinearRing=function(){if(arguments.length===0)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(arguments.length===1){if(arguments[0]instanceof Array){var t=arguments[0];return this.createLinearRing(t!==null?this.getCoordinateSequenceFactory().create(t):null)}else if(Wt(arguments[0],Mn)){var e=arguments[0];return new Wa(e,this)}}};bn.prototype.createMultiPolygon=function(){if(arguments.length===0)return new ja(null,this);if(arguments.length===1){var t=arguments[0];return new ja(t,this)}};bn.prototype.createMultiPoint=function(){var t=this;if(arguments.length===0)return new Ff(null,this);if(arguments.length===1){if(arguments[0]instanceof Array){var e=arguments[0];return new Ff(e,this)}else if(arguments[0]instanceof Array){var n=arguments[0];return this.createMultiPoint(n!==null?this.getCoordinateSequenceFactory().create(n):null)}else if(Wt(arguments[0],Mn)){var r=arguments[0];if(r===null)return this.createMultiPoint(new Array(0).fill(null));for(var i=new Array(r.size()).fill(null),a=0;a=this.size())throw new Error;return this.array_[t]};Pa.prototype.push=function(t){return this.array_.push(t),t};Pa.prototype.pop=function(t){if(this.array_.length===0)throw new gy;return this.array_.pop()};Pa.prototype.peek=function(){if(this.array_.length===0)throw new gy;return this.array_[this.array_.length-1]};Pa.prototype.empty=function(){return this.array_.length===0};Pa.prototype.isEmpty=function(){return this.empty()};Pa.prototype.search=function(t){return this.array_.indexOf(t)};Pa.prototype.size=function(){return this.array_.length};Pa.prototype.toArray=function(){for(var t=this,e=[],n=0,r=this.array_.length;n0&&this._minIndexthis._minCoord.y&&n.y>this._minCoord.y&&r===wt.CLOCKWISE)&&(i=!0),i&&(this._minIndex=this._minIndex-1)};va.prototype.getRightmostSideOfSegment=function(t,e){var n=t.getEdge(),r=n.getCoordinates();if(e<0||e+1>=r.length||r[e].y===r[e+1].y)return-1;var i=at.LEFT;return r[e].ye._minCoord.x)&&(e._minDe=t,e._minIndex=r,e._minCoord=n[r])};va.prototype.findRightmostEdgeAtNode=function(){var t=this._minDe.getNode(),e=t.getEdges();this._minDe=e.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)};va.prototype.findEdge=function(t){for(var e=this,n=t.iterator();n.hasNext();){var r=n.next();r.isForward()&&e.checkForRightmostCoordinate(r)}fn.isTrue(this._minIndex!==0||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),this._minIndex===0?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe;var i=this.getRightmostSide(this._minDe,this._minIndex);i===at.LEFT&&(this._orientedDe=this._minDe.getSym())};va.prototype.interfaces_=function(){return[]};va.prototype.getClass=function(){return va};var Cl=function(t){function e(n,r){t.call(this,e.msgWithCoord(n,r)),this.pt=r?new Re(r):null,this.name="TopologyException"}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getCoordinate=function(){return this.pt},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e.msgWithCoord=function(n,r){return r?n:n+" [ "+r+" ]"},e}(El),_y=function(){this.array_=[]};_y.prototype.addLast=function(t){this.array_.push(t)};_y.prototype.removeFirst=function(){return this.array_.shift()};_y.prototype.isEmpty=function(){return this.array_.length===0};var ro=function(){this._finder=null,this._dirEdgeList=new _t,this._nodes=new _t,this._rightMostCoord=null,this._env=null,this._finder=new va};ro.prototype.clearVisitedEdges=function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.setVisited(!1)}};ro.prototype.getRightmostCoordinate=function(){return this._rightMostCoord};ro.prototype.computeNodeDepth=function(t){for(var e=this,n=null,r=t.getEdges().iterator();r.hasNext();){var i=r.next();if(i.isVisited()||i.getSym().isVisited()){n=i;break}}if(n===null)throw new Cl("unable to find edge to compute depths at "+t.getCoordinate());t.getEdges().computeDepths(n);for(var a=t.getEdges().iterator();a.hasNext();){var c=a.next();c.setVisited(!0),e.copySymDepths(c)}};ro.prototype.computeDepth=function(t){this.clearVisitedEdges();var e=this._finder.getEdge();e.setEdgeDepths(at.RIGHT,t),this.copySymDepths(e),this.computeDepths(e)};ro.prototype.create=function(t){this.addReachable(t),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()};ro.prototype.findResultEdges=function(){for(var t=this._dirEdgeList.iterator();t.hasNext();){var e=t.next();e.getDepth(at.RIGHT)>=1&&e.getDepth(at.LEFT)<=0&&!e.isInteriorAreaEdge()&&e.setInResult(!0)}};ro.prototype.computeDepths=function(t){var e=this,n=new z1,r=new _y,i=t.getNode();for(r.addLast(i),n.add(i),t.setVisited(!0);!r.isEmpty();){var a=r.removeFirst();n.add(a),e.computeNodeDepth(a);for(var c=a.getEdges().iterator();c.hasNext();){var l=c.next(),m=l.getSym();if(!m.isVisited()){var b=m.getNode();n.contains(b)||(r.addLast(b),n.add(b))}}}};ro.prototype.compareTo=function(t){var e=t;return this._rightMostCoord.xe._rightMostCoord.x?1:0};ro.prototype.getEnvelope=function(){if(this._env===null){for(var t=new Ot,e=this._dirEdgeList.iterator();e.hasNext();)for(var n=e.next(),r=n.getEdge().getCoordinates(),i=0;ithis.location.length){var n=new Array(3).fill(null);n[at.ON]=this.location[at.ON],n[at.LEFT]=Oe.NONE,n[at.RIGHT]=Oe.NONE,this.location=n}for(var r=0;r1&&t.append(Oe.toLocationSymbol(this.location[at.LEFT])),t.append(Oe.toLocationSymbol(this.location[at.ON])),this.location.length>1&&t.append(Oe.toLocationSymbol(this.location[at.RIGHT])),t.toString()};er.prototype.setLocations=function(t,e,n){this.location[at.ON]=t,this.location[at.LEFT]=e,this.location[at.RIGHT]=n};er.prototype.get=function(t){return t1};er.prototype.isAnyNull=function(){for(var t=this,e=0;et._maxNodeDegree&&(t._maxNodeDegree=r),e=t.getNext(e)}while(e!==this._startDe);this._maxNodeDegree*=2};$r.prototype.addPoints=function(t,e,n){var r=this,i=t.getCoordinates();if(e){var a=1;n&&(a=0);for(var c=a;c=0;m--)r._pts.add(i[m])}};$r.prototype.isHole=function(){return this._isHole};$r.prototype.setInResult=function(){var t=this._startDe;do t.getEdge().setInResult(!0),t=t.getNext();while(t!==this._startDe)};$r.prototype.containsPoint=function(t){var e=this.getLinearRing(),n=e.getEnvelopeInternal();if(!n.contains(t)||!wt.isPointInRing(t,e.getCoordinates()))return!1;for(var r=this._holes.iterator();r.hasNext();){var i=r.next();if(i.containsPoint(t))return!1}return!0};$r.prototype.addHole=function(t){this._holes.add(t)};$r.prototype.isShell=function(){return this._shell===null};$r.prototype.getLabel=function(){return this._label};$r.prototype.getEdges=function(){return this._edges};$r.prototype.getMaxNodeDegree=function(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree};$r.prototype.getShell=function(){return this._shell};$r.prototype.mergeLabel=function(){if(arguments.length===1){var t=arguments[0];this.mergeLabel(t,0),this.mergeLabel(t,1)}else if(arguments.length===2){var e=arguments[0],n=arguments[1],r=e.getLocation(n,at.RIGHT);if(r===Oe.NONE)return null;if(this._label.getLocation(n)===Oe.NONE)return this._label.setLocation(n,r),null}};$r.prototype.setShell=function(t){this._shell=t,t!==null&&t.addHole(this)};$r.prototype.toPolygon=function(t){for(var e=this,n=new Array(this._holes.size()).fill(null),r=0;r=2,"found partial label"),this.computeIM(t)};rs.prototype.isInResult=function(){return this._isInResult};rs.prototype.isVisited=function(){return this._isVisited};rs.prototype.interfaces_=function(){return[]};rs.prototype.getClass=function(){return rs};var yy=function(t){function e(){t.call(this),this._coord=null,this._edges=null;var n=arguments[0],r=arguments[1];this._coord=n,this._edges=r,this._label=new Un(0,Oe.NONE)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isIncidentEdgeInResult=function(){for(var n=this.getEdges().getEdges().iterator();n.hasNext();){var r=n.next();if(r.getEdge().isInResult())return!0}return!1},e.prototype.isIsolated=function(){return this._label.getGeometryCount()===1},e.prototype.getCoordinate=function(){return this._coord},e.prototype.print=function(n){n.println("node "+this._coord+" lbl: "+this._label)},e.prototype.computeIM=function(n){},e.prototype.computeMergedLocation=function(n,r){var i=Oe.NONE;if(i=this._label.getLocation(r),!n.isNull(r)){var a=n.getLocation(r);i!==Oe.BOUNDARY&&(i=a)}return i},e.prototype.setLabel=function(){if(arguments.length===2){var n=arguments[0],r=arguments[1];this._label===null?this._label=new Un(n,r):this._label.setLocation(n,r)}else return t.prototype.setLabel.apply(this,arguments)},e.prototype.getEdges=function(){return this._edges},e.prototype.mergeLabel=function(){var n=this;if(arguments[0]instanceof e){var r=arguments[0];this.mergeLabel(r._label)}else if(arguments[0]instanceof Un)for(var i=arguments[0],a=0;a<2;a++){var c=n.computeMergedLocation(i,a),l=n._label.getLocation(a);l===Oe.NONE&&n._label.setLocation(a,c)}},e.prototype.add=function(n){this._edges.insert(n),n.setNode(this)},e.prototype.setLabelBoundary=function(n){if(this._label===null)return null;var r=Oe.NONE;this._label!==null&&(r=this._label.getLocation(n));var i=null;switch(r){case Oe.BOUNDARY:i=Oe.INTERIOR;break;case Oe.INTERIOR:i=Oe.BOUNDARY;break;default:i=Oe.BOUNDARY;break}this._label.setLocation(n,i)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(rs),ba=function(){this.nodeMap=new Gi,this.nodeFact=null;var t=arguments[0];this.nodeFact=t};ba.prototype.find=function(t){return this.nodeMap.get(t)};ba.prototype.addNode=function(){if(arguments[0]instanceof Re){var t=arguments[0],e=this.nodeMap.get(t);return e===null&&(e=this.nodeFact.createNode(t),this.nodeMap.put(t,e)),e}else if(arguments[0]instanceof yy){var n=arguments[0],r=this.nodeMap.get(n.getCoordinate());return r===null?(this.nodeMap.put(n.getCoordinate(),n),n):(r.mergeLabel(n),r)}};ba.prototype.print=function(t){for(var e=this.iterator();e.hasNext();){var n=e.next();n.print(t)}};ba.prototype.iterator=function(){return this.nodeMap.values().iterator()};ba.prototype.values=function(){return this.nodeMap.values()};ba.prototype.getBoundaryNodes=function(t){for(var e=new _t,n=this.iterator();n.hasNext();){var r=n.next();r.getLabel().getLocation(t)===Oe.BOUNDARY&&e.add(r)}return e};ba.prototype.add=function(t){var e=t.getCoordinate(),n=this.addNode(e);n.add(t)};ba.prototype.interfaces_=function(){return[]};ba.prototype.getClass=function(){return ba};var jn=function(){},wm={NE:{configurable:!0},NW:{configurable:!0},SW:{configurable:!0},SE:{configurable:!0}};jn.prototype.interfaces_=function(){return[]};jn.prototype.getClass=function(){return jn};jn.isNorthern=function(t){return t===jn.NE||t===jn.NW};jn.isOpposite=function(t,e){if(t===e)return!1;var n=(t-e+4)%4;return n===2};jn.commonHalfPlane=function(t,e){if(t===e)return t;var n=(t-e+4)%4;if(n===2)return-1;var r=te?t:e;return r===0&&i===3?3:r};jn.isInHalfPlane=function(t,e){return e===jn.SE?t===jn.SE||t===jn.SW:t===e||t===e+1};jn.quadrant=function(){if(typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var t=arguments[0],e=arguments[1];if(t===0&&e===0)throw new gr("Cannot compute the quadrant for point ( "+t+", "+e+" )");return t>=0?e>=0?jn.NE:jn.SE:e>=0?jn.NW:jn.SW}else if(arguments[0]instanceof Re&&arguments[1]instanceof Re){var n=arguments[0],r=arguments[1];if(r.x===n.x&&r.y===n.y)throw new gr("Cannot compute the quadrant for two identical points "+n);return r.x>=n.x?r.y>=n.y?jn.NE:jn.SE:r.y>=n.y?jn.NW:jn.SW}};wm.NE.get=function(){return 0};wm.NW.get=function(){return 1};wm.SW.get=function(){return 2};wm.SE.get=function(){return 3};Object.defineProperties(jn,wm);var ji=function(){if(this._edge=null,this._label=null,this._node=null,this._p0=null,this._p1=null,this._dx=null,this._dy=null,this._quadrant=null,arguments.length===1){var t=arguments[0];this._edge=t}else if(arguments.length===3){var e=arguments[0],n=arguments[1],r=arguments[2],i=null;this._edge=e,this.init(n,r),this._label=i}else if(arguments.length===4){var a=arguments[0],c=arguments[1],l=arguments[2],m=arguments[3];this._edge=a,this.init(c,l),this._label=m}};ji.prototype.compareDirection=function(t){return this._dx===t._dx&&this._dy===t._dy?0:this._quadrant>t._quadrant?1:this._quadrant2){c.linkDirectedEdgesForMinimalEdgeRings();var l=c.buildMinimalRings(),m=r.findShell(l);m!==null?(r.placePolygonHoles(m,l),e.add(m)):n.addAll(l)}else i.add(c)}return i};Ro.prototype.containsPoint=function(t){for(var e=this._shellList.iterator();e.hasNext();){var n=e.next();if(n.containsPoint(t))return!0}return!1};Ro.prototype.buildMaximalEdgeRings=function(t){for(var e=this,n=new _t,r=t.iterator();r.hasNext();){var i=r.next();if(i.isInResult()&&i.getLabel().isArea()&&i.getEdgeRing()===null){var a=new HN(i,e._geometryFactory);n.add(a),a.setInResult()}}return n};Ro.prototype.placePolygonHoles=function(t,e){for(var n=e.iterator();n.hasNext();){var r=n.next();r.isHole()&&r.setShell(t)}};Ro.prototype.getPolygons=function(){var t=this.computePolygons(this._shellList);return t};Ro.prototype.findEdgeRingContaining=function(t,e){for(var n=t.getLinearRing(),r=n.getEnvelopeInternal(),i=n.getCoordinateN(0),a=null,c=null,l=e.iterator();l.hasNext();){var m=l.next(),b=m.getLinearRing(),S=b.getEnvelopeInternal();a!==null&&(c=a.getLinearRing().getEnvelopeInternal());var E=!1;S.contains(r)&&wt.isPointInRing(i,b.getCoordinates())&&(E=!0),E&&(a===null||c.contains(S))&&(a=m)}return a};Ro.prototype.findShell=function(t){for(var e=0,n=null,r=t.iterator();r.hasNext();){var i=r.next();i.isHole()||(n=i,e++)}return fn.isTrue(e<=1,"found two shells in MinimalEdgeRing list"),n};Ro.prototype.add=function(){if(arguments.length===1){var t=arguments[0];this.add(t.getEdgeEnds(),t.getNodes())}else if(arguments.length===2){var e=arguments[0],n=arguments[1];wr.linkResultDirectedEdges(n);var r=this.buildMaximalEdgeRings(e),i=new _t,a=this.buildMinimalEdgeRings(r,this._shellList,i);this.sortShellsAndHoles(a,this._shellList,i),this.placeFreeHoles(this._shellList,i)}};Ro.prototype.interfaces_=function(){return[]};Ro.prototype.getClass=function(){return Ro};var Vf=function(){};Vf.prototype.getBounds=function(){};Vf.prototype.interfaces_=function(){return[]};Vf.prototype.getClass=function(){return Vf};var js=function(){this._bounds=null,this._item=null;var t=arguments[0],e=arguments[1];this._bounds=t,this._item=e};js.prototype.getItem=function(){return this._item};js.prototype.getBounds=function(){return this._bounds};js.prototype.interfaces_=function(){return[Vf,Es]};js.prototype.getClass=function(){return js};var Tl=function(){this._size=null,this._items=null,this._size=0,this._items=new _t,this._items.add(null)};Tl.prototype.poll=function(){if(this.isEmpty())return null;var t=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),t};Tl.prototype.size=function(){return this._size};Tl.prototype.reorder=function(t){for(var e=this,n=null,r=this._items.get(t);t*2<=this._size&&(n=t*2,n!==e._size&&e._items.get(n+1).compareTo(e._items.get(n))<0&&n++,e._items.get(n).compareTo(r)<0);t=n)e._items.set(t,e._items.get(n));this._items.set(t,r)};Tl.prototype.clear=function(){this._size=0,this._items.clear()};Tl.prototype.isEmpty=function(){return this._size===0};Tl.prototype.add=function(t){var e=this;this._items.add(null),this._size+=1;var n=this._size;for(this._items.set(0,t);t.compareTo(this._items.get(Math.trunc(n/2)))<0;n/=2)e._items.set(n,e._items.get(Math.trunc(n/2)));this._items.set(n,t)};Tl.prototype.interfaces_=function(){return[]};Tl.prototype.getClass=function(){return Tl};var uu=function(){};uu.prototype.visitItem=function(t){};uu.prototype.interfaces_=function(){return[]};uu.prototype.getClass=function(){return uu};var Xc=function(){};Xc.prototype.insert=function(t,e){};Xc.prototype.remove=function(t,e){};Xc.prototype.query=function(){};Xc.prototype.interfaces_=function(){return[]};Xc.prototype.getClass=function(){return Xc};var Qr=function(){if(this._childBoundables=new _t,this._bounds=null,this._level=null,arguments.length!==0&&arguments.length===1){var t=arguments[0];this._level=t}},_C={serialVersionUID:{configurable:!0}};Qr.prototype.getLevel=function(){return this._level};Qr.prototype.size=function(){return this._childBoundables.size()};Qr.prototype.getChildBoundables=function(){return this._childBoundables};Qr.prototype.addChildBoundable=function(t){fn.isTrue(this._bounds===null),this._childBoundables.add(t)};Qr.prototype.isEmpty=function(){return this._childBoundables.isEmpty()};Qr.prototype.getBounds=function(){return this._bounds===null&&(this._bounds=this.computeBounds()),this._bounds};Qr.prototype.interfaces_=function(){return[Vf,Es]};Qr.prototype.getClass=function(){return Qr};_C.serialVersionUID.get=function(){return 6493722185909574e3};Object.defineProperties(Qr,_C);var qs=function(){};qs.reverseOrder=function(){return{compare:function(t,e){return e.compareTo(t)}}};qs.min=function(t){return qs.sort(t),t.get(0)};qs.sort=function(t,e){var n=t.toArray();e?$u.sort(n,e):$u.sort(n);for(var r=t.iterator(),i=0,a=n.length;ijr.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,t,e),null):(this.expand(this._boundable2,this._boundable1,t,e),null);if(n)return this.expand(this._boundable1,this._boundable2,t,e),null;if(r)return this.expand(this._boundable2,this._boundable1,t,e),null;throw new gr("neither boundable is composite")};jr.prototype.isLeaves=function(){return!(jr.isComposite(this._boundable1)||jr.isComposite(this._boundable2))};jr.prototype.compareTo=function(t){var e=t;return this._distancee._distance?1:0};jr.prototype.expand=function(t,e,n,r){for(var i=this,a=t.getChildBoundables(),c=a.iterator();c.hasNext();){var l=c.next(),m=new jr(l,e,i._itemDistance);m.getDistance()1,"Node capacity must be greater than 1"),this._nodeCapacity=n}},vy={IntersectsOp:{configurable:!0},serialVersionUID:{configurable:!0},DEFAULT_NODE_CAPACITY:{configurable:!0}};Si.prototype.getNodeCapacity=function(){return this._nodeCapacity};Si.prototype.lastNode=function(t){return t.get(t.size()-1)};Si.prototype.size=function(){var t=this;if(arguments.length===0)return this.isEmpty()?0:(this.build(),this.size(this._root));if(arguments.length===1){for(var e=arguments[0],n=0,r=e.getChildBoundables().iterator();r.hasNext();){var i=r.next();i instanceof Qr?n+=t.size(i):i instanceof js&&(n+=1)}return n}};Si.prototype.removeItem=function(t,e){for(var n=null,r=t.getChildBoundables().iterator();r.hasNext();){var i=r.next();i instanceof js&&i.getItem()===e&&(n=i)}return n!==null?(t.getChildBoundables().remove(n),!0):!1};Si.prototype.itemsTree=function(){var t=this;if(arguments.length===0){this.build();var e=this.itemsTree(this._root);return e===null?new _t:e}else if(arguments.length===1){for(var n=arguments[0],r=new _t,i=n.getChildBoundables().iterator();i.hasNext();){var a=i.next();if(a instanceof Qr){var c=t.itemsTree(a);c!==null&&r.add(c)}else a instanceof js?r.add(a.getItem()):fn.shouldNeverReachHere()}return r.size()<=0?null:r}};Si.prototype.insert=function(t,e){fn.isTrue(!this._built,"Cannot insert items into an STR packed R-tree after it has been built."),this._itemBoundables.add(new js(t,e))};Si.prototype.boundablesAtLevel=function(){var t=this;if(arguments.length===1){var e=arguments[0],n=new _t;return this.boundablesAtLevel(e,this._root,n),n}else if(arguments.length===3){var r=arguments[0],i=arguments[1],a=arguments[2];if(fn.isTrue(r>-2),i.getLevel()===r)return a.add(i),null;for(var c=i.getChildBoundables().iterator();c.hasNext();){var l=c.next();l instanceof Qr?t.boundablesAtLevel(r,l,a):(fn.isTrue(l instanceof js),r===-1&&a.add(l))}return null}};Si.prototype.query=function(){var t=this;if(arguments.length===1){var e=arguments[0];this.build();var n=new _t;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),e)&&this.query(e,this._root,n),n}else if(arguments.length===2){var r=arguments[0],i=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),r)&&this.query(r,this._root,i)}else if(arguments.length===3){if(Wt(arguments[2],uu)&&arguments[0]instanceof Object&&arguments[1]instanceof Qr)for(var a=arguments[0],c=arguments[1],l=arguments[2],m=c.getChildBoundables(),b=0;bn&&(n=a)}}return n+1}};Si.prototype.createParentBoundables=function(t,e){var n=this;fn.isTrue(!t.isEmpty());var r=new _t;r.add(this.createNode(e));var i=new _t(t);qs.sort(i,this.getComparator());for(var a=i.iterator();a.hasNext();){var c=a.next();n.lastNode(r).getChildBoundables().size()===n.getNodeCapacity()&&r.add(n.createNode(e)),n.lastNode(r).addChildBoundable(c)}return r};Si.prototype.isEmpty=function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()};Si.prototype.interfaces_=function(){return[Es]};Si.prototype.getClass=function(){return Si};Si.compareDoubles=function(t,e){return t>e?1:t0);for(var c=new _t,l=0;l0;){var D=A.poll(),O=D.getDistance();if(O>=E)break;D.isLeaves()?(E=O,T=D):D.expandToQueue(A,E)}return[T.getBoundable(0).getItem(),T.getBoundable(1).getItem()]}}else if(arguments.length===3){var z=arguments[0],G=arguments[1],F=arguments[2],j=new js(z,G),Z=new jr(this.getRoot(),j,F);return this.nearestNeighbour(Z)[0]}},e.prototype.interfaces_=function(){return[Xc,Es]},e.prototype.getClass=function(){return e},e.centreX=function(r){return e.avg(r.getMinX(),r.getMaxX())},e.avg=function(r,i){return(r+i)/2},e.centreY=function(r){return e.avg(r.getMinY(),r.getMaxY())},n.STRtreeNode.get=function(){return Y2},n.serialVersionUID.get=function(){return 0x39920f7d5f261e0},n.xComparator.get=function(){return{interfaces_:function(){return[Af]},compare:function(r,i){return t.compareDoubles(e.centreX(r.getBounds()),e.centreX(i.getBounds()))}}},n.yComparator.get=function(){return{interfaces_:function(){return[Af]},compare:function(r,i){return t.compareDoubles(e.centreY(r.getBounds()),e.centreY(i.getBounds()))}}},n.intersectsOp.get=function(){return{interfaces_:function(){return[t.IntersectsOp]},intersects:function(r,i){return r.intersects(i)}}},n.DEFAULT_NODE_CAPACITY.get=function(){return 10},Object.defineProperties(e,n),e}(Si),Y2=function(t){function e(){var n=arguments[0];t.call(this,n)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.computeBounds=function(){for(var n=null,r=this.getChildBoundables().iterator();r.hasNext();){var i=r.next();n===null?n=new Ot(i.getBounds()):n.expandToInclude(i.getBounds())}return n},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Qr),mo=function(){};mo.prototype.interfaces_=function(){return[]};mo.prototype.getClass=function(){return mo};mo.relativeSign=function(t,e){return te?1:0};mo.compare=function(t,e,n){if(e.equals2D(n))return 0;var r=mo.relativeSign(e.x,n.x),i=mo.relativeSign(e.y,n.y);switch(t){case 0:return mo.compareValue(r,i);case 1:return mo.compareValue(i,r);case 2:return mo.compareValue(i,-r);case 3:return mo.compareValue(-r,i);case 4:return mo.compareValue(-r,-i);case 5:return mo.compareValue(-i,-r);case 6:return mo.compareValue(-i,r);case 7:return mo.compareValue(r,-i)}return fn.shouldNeverReachHere("invalid octant value"),0};mo.compareValue=function(t,e){return t<0?-1:t>0?1:e<0?-1:e>0?1:0};var cu=function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];this._segString=t,this.coord=new Re(e),this.segmentIndex=n,this._segmentOctant=r,this._isInterior=!e.equals2D(t.getCoordinate(n))};cu.prototype.getCoordinate=function(){return this.coord};cu.prototype.print=function(t){t.print(this.coord),t.print(" seg # = "+this.segmentIndex)};cu.prototype.compareTo=function(t){var e=t;return this.segmentIndexe.segmentIndex?1:this.coord.equals2D(e.coord)?0:mo.compare(this._segmentOctant,this.coord,e.coord)};cu.prototype.isEndPoint=function(t){return this.segmentIndex===0&&!this._isInterior||this.segmentIndex===t};cu.prototype.isInterior=function(){return this._isInterior};cu.prototype.interfaces_=function(){return[Ss]};cu.prototype.getClass=function(){return cu};var io=function(){this._nodeMap=new Gi,this._edge=null;var t=arguments[0];this._edge=t};io.prototype.getSplitCoordinates=function(){var t=this,e=new bm;this.addEndpoints();for(var n=this.iterator(),r=n.next();n.hasNext();){var i=n.next();t.addEdgeCoordinates(r,i,e),r=i}return e.toCoordinateArray()};io.prototype.addCollapsedNodes=function(){var t=this,e=new _t;this.findCollapsesFromInsertedNodes(e),this.findCollapsesFromExistingVertices(e);for(var n=e.iterator();n.hasNext();){var r=n.next().intValue();t.add(t._edge.getCoordinate(r),r)}};io.prototype.print=function(t){t.println("Intersections:");for(var e=this.iterator();e.hasNext();){var n=e.next();n.print(t)}};io.prototype.findCollapsesFromExistingVertices=function(t){for(var e=this,n=0;n=0?e>=0?n>=r?0:1:n>=r?7:6:e>=0?n>=r?3:2:n>=r?4:5}else if(arguments[0]instanceof Re&&arguments[1]instanceof Re){var i=arguments[0],a=arguments[1],c=a.x-i.x,l=a.y-i.y;if(c===0&&l===0)throw new gr("Cannot compute the octant for two identical points "+i);return Yc.octant(c,l)}};var Ha=function(){};Ha.prototype.getCoordinates=function(){};Ha.prototype.size=function(){};Ha.prototype.getCoordinate=function(t){};Ha.prototype.isClosed=function(){};Ha.prototype.setData=function(t){};Ha.prototype.getData=function(){};Ha.prototype.interfaces_=function(){return[]};Ha.prototype.getClass=function(){return Ha};var rm=function(){};rm.prototype.addIntersection=function(t,e){};rm.prototype.interfaces_=function(){return[Ha]};rm.prototype.getClass=function(){return rm};var Vr=function(){this._nodeList=new io(this),this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e};Vr.prototype.getCoordinates=function(){return this._pts};Vr.prototype.size=function(){return this._pts.length};Vr.prototype.getCoordinate=function(t){return this._pts[t]};Vr.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])};Vr.prototype.getSegmentOctant=function(t){return t===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(t),this.getCoordinate(t+1))};Vr.prototype.setData=function(t){this._data=t};Vr.prototype.safeOctant=function(t,e){return t.equals2D(e)?0:Yc.octant(t,e)};Vr.prototype.getData=function(){return this._data};Vr.prototype.addIntersection=function(){if(arguments.length===2){var t=arguments[0],e=arguments[1];this.addIntersectionNode(t,e)}else if(arguments.length===4){var n=arguments[0],r=arguments[1],i=arguments[3],a=new Re(n.getIntersection(i));this.addIntersection(a,r)}};Vr.prototype.toString=function(){return Us.toLineString(new zr(this._pts))};Vr.prototype.getNodeList=function(){return this._nodeList};Vr.prototype.addIntersectionNode=function(t,e){var n=e,r=n+1;if(r=0&&n>=0||e<=0&&n<=0?Math.max(e,n):0}else if(arguments[0]instanceof Re){var r=arguments[0];return wt.orientationIndex(this.p0,this.p1,r)}};Bt.prototype.toGeometry=function(t){return t.createLineString([this.p0,this.p1])};Bt.prototype.isVertical=function(){return this.p0.x===this.p1.x};Bt.prototype.equals=function(t){if(!(t instanceof Bt))return!1;var e=t;return this.p0.equals(e.p0)&&this.p1.equals(e.p1)};Bt.prototype.intersection=function(t){var e=new uc;return e.computeIntersection(this.p0,this.p1,t.p0,t.p1),e.hasIntersection()?e.getIntersection(0):null};Bt.prototype.project=function(){if(arguments[0]instanceof Re){var t=arguments[0];if(t.equals(this.p0)||t.equals(this.p1))return new Re(t);var e=this.projectionFactor(t),n=new Re;return n.x=this.p0.x+e*(this.p1.x-this.p0.x),n.y=this.p0.y+e*(this.p1.y-this.p0.y),n}else if(arguments[0]instanceof Bt){var r=arguments[0],i=this.projectionFactor(r.p0),a=this.projectionFactor(r.p1);if(i>=1&&a>=1||i<=0&&a<=0)return null;var c=this.project(r.p0);i<0&&(c=this.p0),i>1&&(c=this.p1);var l=this.project(r.p1);return a<0&&(l=this.p0),a>1&&(l=this.p1),new Bt(c,l)}};Bt.prototype.normalize=function(){this.p1.compareTo(this.p0)<0&&this.reverse()};Bt.prototype.angle=function(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)};Bt.prototype.getCoordinate=function(t){return t===0?this.p0:this.p1};Bt.prototype.distancePerpendicular=function(t){return wt.distancePointLinePerpendicular(t,this.p0,this.p1)};Bt.prototype.minY=function(){return Math.min(this.p0.y,this.p1.y)};Bt.prototype.midPoint=function(){return Bt.midPoint(this.p0,this.p1)};Bt.prototype.projectionFactor=function(t){if(t.equals(this.p0))return 0;if(t.equals(this.p1))return 1;var e=this.p1.x-this.p0.x,n=this.p1.y-this.p0.y,r=e*e+n*n;if(r<=0)return on.NaN;var i=((t.x-this.p0.x)*e+(t.y-this.p0.y)*n)/r;return i};Bt.prototype.closestPoints=function(t){var e=this.intersection(t);if(e!==null)return[e,e];var n=new Array(2).fill(null),r=on.MAX_VALUE,i=null,a=this.closestPoint(t.p0);r=a.distance(t.p0),n[0]=a,n[1]=t.p0;var c=this.closestPoint(t.p1);i=c.distance(t.p1),i0&&e<1)return this.project(t);var n=this.p0.distance(t),r=this.p1.distance(t);return n1||on.isNaN(e))&&(e=1),e};Bt.prototype.toString=function(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"};Bt.prototype.isHorizontal=function(){return this.p0.y===this.p1.y};Bt.prototype.distance=function(){if(arguments[0]instanceof Bt){var t=arguments[0];return wt.distanceLineLine(this.p0,this.p1,t.p0,t.p1)}else if(arguments[0]instanceof Re){var e=arguments[0];return wt.distancePointLine(e,this.p0,this.p1)}};Bt.prototype.pointAlong=function(t){var e=new Re;return e.x=this.p0.x+t*(this.p1.x-this.p0.x),e.y=this.p0.y+t*(this.p1.y-this.p0.y),e};Bt.prototype.hashCode=function(){var t=on.doubleToLongBits(this.p0.x);t^=on.doubleToLongBits(this.p0.y)*31;var e=Math.trunc(t)^Math.trunc(t>>32),n=on.doubleToLongBits(this.p1.x);n^=on.doubleToLongBits(this.p1.y)*31;var r=Math.trunc(n)^Math.trunc(n>>32);return e^r};Bt.prototype.interfaces_=function(){return[Ss,Es]};Bt.prototype.getClass=function(){return Bt};Bt.midPoint=function(t,e){return new Re((t.x+e.x)/2,(t.y+e.y)/2)};vC.serialVersionUID.get=function(){return 0x2d2172135f411c00};Object.defineProperties(Bt,vC);var im=function(){this.tempEnv1=new Ot,this.tempEnv2=new Ot,this._overlapSeg1=new Bt,this._overlapSeg2=new Bt};im.prototype.overlap=function(){if(arguments.length!==2&&arguments.length===4){var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];t.getLineSegment(e,this._overlapSeg1),n.getLineSegment(r,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2)}};im.prototype.interfaces_=function(){return[]};im.prototype.getClass=function(){return im};var No=function(){this._pts=null,this._start=null,this._end=null,this._env=null,this._context=null,this._id=null;var t=arguments[0],e=arguments[1],n=arguments[2],r=arguments[3];this._pts=t,this._start=e,this._end=n,this._context=r};No.prototype.getLineSegment=function(t,e){e.p0=this._pts[t],e.p1=this._pts[t+1]};No.prototype.computeSelect=function(t,e,n,r){var i=this._pts[e],a=this._pts[n];if(r.tempEnv1.init(i,a),n-e===1)return r.select(this,e),null;if(!t.intersects(r.tempEnv1))return null;var c=Math.trunc((e+n)/2);e=t.length-1)return t.length-1;for(var r=jn.quadrant(t[n],t[n+1]),i=e+1;ic.getId()&&(c.computeOverlaps(b,i),r._nOverlaps++),r._segInt.isDone())return null}},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},n.SegmentOverlapAction.get=function(){return K2},Object.defineProperties(e,n),e}(om),K2=function(t){function e(){t.call(this),this._si=null;var n=arguments[0];this._si=n}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.overlap=function(){if(arguments.length===4){var n=arguments[0],r=arguments[1],i=arguments[2],a=arguments[3],c=n.getContext(),l=i.getContext();this._si.processIntersections(c,r,l,a)}else return t.prototype.overlap.apply(this,arguments)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(im),Nn=function t(){if(this._quadrantSegments=t.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=t.CAP_ROUND,this._joinStyle=t.JOIN_ROUND,this._mitreLimit=t.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=t.DEFAULT_SIMPLIFY_FACTOR,arguments.length!==0){if(arguments.length===1){var e=arguments[0];this.setQuadrantSegments(e)}else if(arguments.length===2){var n=arguments[0],r=arguments[1];this.setQuadrantSegments(n),this.setEndCapStyle(r)}else if(arguments.length===4){var i=arguments[0],a=arguments[1],c=arguments[2],l=arguments[3];this.setQuadrantSegments(i),this.setEndCapStyle(a),this.setJoinStyle(c),this.setMitreLimit(l)}}},Dl={CAP_ROUND:{configurable:!0},CAP_FLAT:{configurable:!0},CAP_SQUARE:{configurable:!0},JOIN_ROUND:{configurable:!0},JOIN_MITRE:{configurable:!0},JOIN_BEVEL:{configurable:!0},DEFAULT_QUADRANT_SEGMENTS:{configurable:!0},DEFAULT_MITRE_LIMIT:{configurable:!0},DEFAULT_SIMPLIFY_FACTOR:{configurable:!0}};Nn.prototype.getEndCapStyle=function(){return this._endCapStyle};Nn.prototype.isSingleSided=function(){return this._isSingleSided};Nn.prototype.setQuadrantSegments=function(t){this._quadrantSegments=t,this._quadrantSegments===0&&(this._joinStyle=Nn.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=Nn.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),t<=0&&(this._quadrantSegments=1),this._joinStyle!==Nn.JOIN_ROUND&&(this._quadrantSegments=Nn.DEFAULT_QUADRANT_SEGMENTS)};Nn.prototype.getJoinStyle=function(){return this._joinStyle};Nn.prototype.setJoinStyle=function(t){this._joinStyle=t};Nn.prototype.setSimplifyFactor=function(t){this._simplifyFactor=t<0?0:t};Nn.prototype.getSimplifyFactor=function(){return this._simplifyFactor};Nn.prototype.getQuadrantSegments=function(){return this._quadrantSegments};Nn.prototype.setEndCapStyle=function(t){this._endCapStyle=t};Nn.prototype.getMitreLimit=function(){return this._mitreLimit};Nn.prototype.setMitreLimit=function(t){this._mitreLimit=t};Nn.prototype.setSingleSided=function(t){this._isSingleSided=t};Nn.prototype.interfaces_=function(){return[]};Nn.prototype.getClass=function(){return Nn};Nn.bufferDistanceError=function(t){var e=Math.PI/2/t;return 1-Math.cos(e/2)};Dl.CAP_ROUND.get=function(){return 1};Dl.CAP_FLAT.get=function(){return 2};Dl.CAP_SQUARE.get=function(){return 3};Dl.JOIN_ROUND.get=function(){return 1};Dl.JOIN_MITRE.get=function(){return 2};Dl.JOIN_BEVEL.get=function(){return 3};Dl.DEFAULT_QUADRANT_SEGMENTS.get=function(){return 8};Dl.DEFAULT_MITRE_LIMIT.get=function(){return 5};Dl.DEFAULT_SIMPLIFY_FACTOR.get=function(){return .01};Object.defineProperties(Nn,Dl);var kr=function(t){this._distanceTol=null,this._isDeleted=null,this._angleOrientation=wt.COUNTERCLOCKWISE,this._inputLine=t||null},Sm={INIT:{configurable:!0},DELETE:{configurable:!0},KEEP:{configurable:!0},NUM_PTS_TO_CHECK:{configurable:!0}};kr.prototype.isDeletable=function(t,e,n,r){var i=this._inputLine[t],a=this._inputLine[e],c=this._inputLine[n];return!this.isConcave(i,a,c)||!this.isShallow(i,a,c,r)?!1:this.isShallowSampled(i,a,t,n,r)};kr.prototype.deleteShallowConcavities=function(){for(var t=this,e=1,n=this.findNextNonDeletedIndex(e),r=this.findNextNonDeletedIndex(n),i=!1;r=0;i--)n.addPt(t[i])};is.prototype.isRedundant=function(t){if(this._ptList.size()<1)return!1;var e=this._ptList.get(this._ptList.size()-1),n=t.distance(e);return nMath.PI;)t-=In.PI_TIMES_2;for(;t<=-Math.PI;)t+=In.PI_TIMES_2;return t};In.angle=function(){if(arguments.length===1){var t=arguments[0];return Math.atan2(t.y,t.x)}else if(arguments.length===2){var e=arguments[0],n=arguments[1],r=n.x-e.x,i=n.y-e.y;return Math.atan2(i,r)}};In.isAcute=function(t,e,n){var r=t.x-e.x,i=t.y-e.y,a=n.x-e.x,c=n.y-e.y,l=r*a+i*c;return l>0};In.isObtuse=function(t,e,n){var r=t.x-e.x,i=t.y-e.y,a=n.x-e.x,c=n.y-e.y,l=r*a+i*c;return l<0};In.interiorAngle=function(t,e,n){var r=In.angle(e,t),i=In.angle(e,n);return Math.abs(i-r)};In.normalizePositive=function(t){if(t<0){for(;t<0;)t+=In.PI_TIMES_2;t>=In.PI_TIMES_2&&(t=0)}else{for(;t>=In.PI_TIMES_2;)t-=In.PI_TIMES_2;t<0&&(t=0)}return t};In.angleBetween=function(t,e,n){var r=In.angle(e,t),i=In.angle(e,n);return In.diff(r,i)};In.diff=function(t,e){var n=null;return tMath.PI&&(n=2*Math.PI-n),n};In.toRadians=function(t){return t*Math.PI/180};In.getTurn=function(t,e){var n=Math.sin(e-t);return n>0?In.COUNTERCLOCKWISE:n<0?In.CLOCKWISE:In.NONE};In.angleBetweenOriented=function(t,e,n){var r=In.angle(e,t),i=In.angle(e,n),a=i-r;return a<=-Math.PI?a+In.PI_TIMES_2:a>Math.PI?a-In.PI_TIMES_2:a};ph.PI_TIMES_2.get=function(){return 2*Math.PI};ph.PI_OVER_2.get=function(){return Math.PI/2};ph.PI_OVER_4.get=function(){return Math.PI/4};ph.COUNTERCLOCKWISE.get=function(){return wt.COUNTERCLOCKWISE};ph.CLOCKWISE.get=function(){return wt.CLOCKWISE};ph.NONE.get=function(){return wt.COLLINEAR};Object.defineProperties(In,ph);var ur=function t(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new Bt,this._seg1=new Bt,this._offset0=new Bt,this._offset1=new Bt,this._side=0,this._hasNarrowConcaveAngle=!1;var e=arguments[0],n=arguments[1],r=arguments[2];this._precisionModel=e,this._bufParams=n,this._li=new uc,this._filletAngleQuantum=Math.PI/2/n.getQuadrantSegments(),n.getQuadrantSegments()>=8&&n.getJoinStyle()===Nn.JOIN_ROUND&&(this._closingSegLengthFactor=t.MAX_CLOSING_SEG_LEN_FACTOR),this.init(r)},Em={OFFSET_SEGMENT_SEPARATION_FACTOR:{configurable:!0},INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},CURVE_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},MAX_CLOSING_SEG_LEN_FACTOR:{configurable:!0}};ur.prototype.addNextSegment=function(t,e){if(this._s0=this._s1,this._s1=this._s2,this._s2=t,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var n=wt.computeOrientation(this._s0,this._s1,this._s2),r=n===wt.CLOCKWISE&&this._side===at.LEFT||n===wt.COUNTERCLOCKWISE&&this._side===at.RIGHT;n===0?this.addCollinear(e):r?this.addOutsideTurn(n,e):this.addInsideTurn(n,e)};ur.prototype.addLineEndCap=function(t,e){var n=new Bt(t,e),r=new Bt;this.computeOffsetSegment(n,at.LEFT,this._distance,r);var i=new Bt;this.computeOffsetSegment(n,at.RIGHT,this._distance,i);var a=e.x-t.x,c=e.y-t.y,l=Math.atan2(c,a);switch(this._bufParams.getEndCapStyle()){case Nn.CAP_ROUND:this._segList.addPt(r.p1),this.addFilletArc(e,l+Math.PI/2,l-Math.PI/2,wt.CLOCKWISE,this._distance),this._segList.addPt(i.p1);break;case Nn.CAP_FLAT:this._segList.addPt(r.p1),this._segList.addPt(i.p1);break;case Nn.CAP_SQUARE:var m=new Re;m.x=Math.abs(this._distance)*Math.cos(l),m.y=Math.abs(this._distance)*Math.sin(l);var b=new Re(r.p1.x+m.x,r.p1.y+m.y),S=new Re(i.p1.x+m.x,i.p1.y+m.y);this._segList.addPt(b),this._segList.addPt(S);break}};ur.prototype.getCoordinates=function(){var t=this._segList.getCoordinates();return t};ur.prototype.addMitreJoin=function(t,e,n,r){var i=!0,a=null;try{a=Bs.intersection(e.p0,e.p1,n.p0,n.p1);var c=r<=0?1:a.distance(t)/Math.abs(r);c>this._bufParams.getMitreLimit()&&(i=!1)}catch(l){if(l instanceof lp)a=new Re(0,0),i=!1;else throw l}finally{}i?this._segList.addPt(a):this.addLimitedMitreJoin(e,n,r,this._bufParams.getMitreLimit())};ur.prototype.addFilletCorner=function(t,e,n,r,i){var a=e.x-t.x,c=e.y-t.y,l=Math.atan2(c,a),m=n.x-t.x,b=n.y-t.y,S=Math.atan2(b,m);r===wt.CLOCKWISE?l<=S&&(l+=2*Math.PI):l>=S&&(l-=2*Math.PI),this._segList.addPt(e),this.addFilletArc(t,l,S,r,i),this._segList.addPt(n)};ur.prototype.addOutsideTurn=function(t,e){if(this._offset0.p1.distance(this._offset1.p0)0){var n=new Re((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(n);var r=new Re((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(r)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}};ur.prototype.createCircle=function(t){var e=new Re(t.x+this._distance,t.y);this._segList.addPt(e),this.addFilletArc(t,0,2*Math.PI,-1,this._distance),this._segList.closeRing()};ur.prototype.addBevelJoin=function(t,e){this._segList.addPt(t.p1),this._segList.addPt(e.p0)};ur.prototype.init=function(t){this._distance=t,this._maxCurveSegmentError=t*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new is,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(t*ur.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)};ur.prototype.addCollinear=function(t){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2);var e=this._li.getIntersectionNum();e>=2&&(this._bufParams.getJoinStyle()===Nn.JOIN_BEVEL||this._bufParams.getJoinStyle()===Nn.JOIN_MITRE?(t&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addFilletCorner(this._s1,this._offset0.p1,this._offset1.p0,wt.CLOCKWISE,this._distance))};ur.prototype.closeRing=function(){this._segList.closeRing()};ur.prototype.hasNarrowConcaveAngle=function(){return this._hasNarrowConcaveAngle};ur.prototype.interfaces_=function(){return[]};ur.prototype.getClass=function(){return ur};Em.OFFSET_SEGMENT_SEPARATION_FACTOR.get=function(){return .001};Em.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return .001};Em.CURVE_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return 1e-6};Em.MAX_CLOSING_SEG_LEN_FACTOR.get=function(){return 80};Object.defineProperties(ur,Em);var _o=function(){this._distance=0,this._precisionModel=null,this._bufParams=null;var t=arguments[0],e=arguments[1];this._precisionModel=t,this._bufParams=e};_o.prototype.getOffsetCurve=function(t,e){if(this._distance=e,e===0)return null;var n=e<0,r=Math.abs(e),i=this.getSegGen(r);t.length<=1?this.computePointCurve(t[0],i):this.computeOffsetCurve(t,n,i);var a=i.getCoordinates();return n&&xn.reverse(a),a};_o.prototype.computeSingleSidedBufferCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);if(e){n.addSegments(t,!0);var i=kr.simplify(t,-r),a=i.length-1;n.initSideSegments(i[a],i[a-1],at.LEFT),n.addFirstSegment();for(var c=a-2;c>=0;c--)n.addNextSegment(i[c],!0)}else{n.addSegments(t,!1);var l=kr.simplify(t,r),m=l.length-1;n.initSideSegments(l[0],l[1],at.LEFT),n.addFirstSegment();for(var b=2;b<=m;b++)n.addNextSegment(l[b],!0)}n.addLastSegment(),n.closeRing()};_o.prototype.computeRingBufferCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);e===at.RIGHT&&(r=-r);var i=kr.simplify(t,r),a=i.length-1;n.initSideSegments(i[a-1],i[0],e);for(var c=1;c<=a;c++){var l=c!==1;n.addNextSegment(i[c],l)}n.closeRing()};_o.prototype.computeLineBufferCurve=function(t,e){var n=this.simplifyTolerance(this._distance),r=kr.simplify(t,n),i=r.length-1;e.initSideSegments(r[0],r[1],at.LEFT);for(var a=2;a<=i;a++)e.addNextSegment(r[a],!0);e.addLastSegment(),e.addLineEndCap(r[i-1],r[i]);var c=kr.simplify(t,-n),l=c.length-1;e.initSideSegments(c[l],c[l-1],at.LEFT);for(var m=l-2;m>=0;m--)e.addNextSegment(c[m],!0);e.addLastSegment(),e.addLineEndCap(c[1],c[0]),e.closeRing()};_o.prototype.computePointCurve=function(t,e){switch(this._bufParams.getEndCapStyle()){case Nn.CAP_ROUND:e.createCircle(t);break;case Nn.CAP_SQUARE:e.createSquare(t);break}};_o.prototype.getLineCurve=function(t,e){if(this._distance=e,e<0&&!this._bufParams.isSingleSided()||e===0)return null;var n=Math.abs(e),r=this.getSegGen(n);if(t.length<=1)this.computePointCurve(t[0],r);else if(this._bufParams.isSingleSided()){var i=e<0;this.computeSingleSidedBufferCurve(t,i,r)}else this.computeLineBufferCurve(t,r);var a=r.getCoordinates();return a};_o.prototype.getBufferParameters=function(){return this._bufParams};_o.prototype.simplifyTolerance=function(t){return t*this._bufParams.getSimplifyFactor()};_o.prototype.getRingCurve=function(t,e,n){if(this._distance=n,t.length<=2)return this.getLineCurve(t,n);if(n===0)return _o.copyCoordinates(t);var r=this.getSegGen(n);return this.computeRingBufferCurve(t,e,r),r.getCoordinates()};_o.prototype.computeOffsetCurve=function(t,e,n){var r=this.simplifyTolerance(this._distance);if(e){var i=kr.simplify(t,-r),a=i.length-1;n.initSideSegments(i[a],i[a-1],at.LEFT),n.addFirstSegment();for(var c=a-2;c>=0;c--)n.addNextSegment(i[c],!0)}else{var l=kr.simplify(t,r),m=l.length-1;n.initSideSegments(l[0],l[1],at.LEFT),n.addFirstSegment();for(var b=2;b<=m;b++)n.addNextSegment(l[b],!0)}n.addLastSegment()};_o.prototype.getSegGen=function(t){return new ur(this._precisionModel,this._bufParams,t)};_o.prototype.interfaces_=function(){return[]};_o.prototype.getClass=function(){return _o};_o.copyCoordinates=function(t){for(var e=new Array(t.length).fill(null),n=0;na.getMaxY()||t.findStabbedSegments(e,i.getDirectedEdges(),n)}return n}else if(arguments.length===3){if(Wt(arguments[2],Vs)&&arguments[0]instanceof Re&&arguments[1]instanceof Yv)for(var c=arguments[0],l=arguments[1],m=arguments[2],b=l.getEdge().getCoordinates(),S=0;St._seg.p1.y&&t._seg.reverse();var E=Math.max(t._seg.p0.x,t._seg.p1.x);if(!(Et._seg.p1.y)&&wt.computeOrientation(t._seg.p0,t._seg.p1,c)!==wt.RIGHT){var T=l.getDepth(at.LEFT);t._seg.p0.equals(b[S])||(T=l.getDepth(at.RIGHT));var A=new Ku(t._seg,T);m.add(A)}}else if(Wt(arguments[2],Vs)&&arguments[0]instanceof Re&&Wt(arguments[1],Vs))for(var D=arguments[0],O=arguments[1],z=arguments[2],G=O.iterator();G.hasNext();){var F=G.next();F.isForward()&&t.findStabbedSegments(D,F,z)}}};Kc.prototype.getDepth=function(t){var e=this.findStabbedSegments(t);if(e.size()===0)return 0;var n=qs.min(e);return n._leftDepth};Kc.prototype.interfaces_=function(){return[]};Kc.prototype.getClass=function(){return Kc};xC.DepthSegment.get=function(){return Ku};Object.defineProperties(Kc,xC);var Ku=function(){this._upwardSeg=null,this._leftDepth=null;var t=arguments[0],e=arguments[1];this._upwardSeg=new Bt(t),this._leftDepth=e};Ku.prototype.compareTo=function(t){var e=t;if(this._upwardSeg.minX()>=e._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=e._upwardSeg.minX())return-1;var n=this._upwardSeg.orientationIndex(e._upwardSeg);return n!==0||(n=-1*e._upwardSeg.orientationIndex(this._upwardSeg),n!==0)?n:this._upwardSeg.compareTo(e._upwardSeg)};Ku.prototype.compareX=function(t,e){var n=t.p0.compareTo(e.p0);return n!==0?n:t.p1.compareTo(e.p1)};Ku.prototype.toString=function(){return this._upwardSeg.toString()};Ku.prototype.interfaces_=function(){return[Ss]};Ku.prototype.getClass=function(){return Ku};var zn=function(t,e,n){this.p0=t||null,this.p1=e||null,this.p2=n||null};zn.prototype.area=function(){return zn.area(this.p0,this.p1,this.p2)};zn.prototype.signedArea=function(){return zn.signedArea(this.p0,this.p1,this.p2)};zn.prototype.interpolateZ=function(t){if(t===null)throw new gr("Supplied point is null.");return zn.interpolateZ(t,this.p0,this.p1,this.p2)};zn.prototype.longestSideLength=function(){return zn.longestSideLength(this.p0,this.p1,this.p2)};zn.prototype.isAcute=function(){return zn.isAcute(this.p0,this.p1,this.p2)};zn.prototype.circumcentre=function(){return zn.circumcentre(this.p0,this.p1,this.p2)};zn.prototype.area3D=function(){return zn.area3D(this.p0,this.p1,this.p2)};zn.prototype.centroid=function(){return zn.centroid(this.p0,this.p1,this.p2)};zn.prototype.inCentre=function(){return zn.inCentre(this.p0,this.p1,this.p2)};zn.prototype.interfaces_=function(){return[]};zn.prototype.getClass=function(){return zn};zn.area=function(t,e,n){return Math.abs(((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2)};zn.signedArea=function(t,e,n){return((n.x-t.x)*(e.y-t.y)-(e.x-t.x)*(n.y-t.y))/2};zn.det=function(t,e,n,r){return t*r-e*n};zn.interpolateZ=function(t,e,n,r){var i=e.x,a=e.y,c=n.x-i,l=r.x-i,m=n.y-a,b=r.y-a,S=c*b-l*m,E=t.x-i,T=t.y-a,A=(b*E-l*T)/S,D=(-m*E+c*T)/S,O=e.z+A*(n.z-e.z)+D*(r.z-e.z);return O};zn.longestSideLength=function(t,e,n){var r=t.distance(e),i=e.distance(n),a=n.distance(t),c=r;return i>c&&(c=i),a>c&&(c=a),c};zn.isAcute=function(t,e,n){return!(!In.isAcute(t,e,n)||!In.isAcute(e,n,t)||!In.isAcute(n,t,e))};zn.circumcentre=function(t,e,n){var r=n.x,i=n.y,a=t.x-r,c=t.y-i,l=e.x-r,m=e.y-i,b=2*zn.det(a,c,l,m),S=zn.det(c,a*a+c*c,m,l*l+m*m),E=zn.det(a,a*a+c*c,l,l*l+m*m),T=r-S/b,A=i+E/b;return new Re(T,A)};zn.perpendicularBisector=function(t,e){var n=e.x-t.x,r=e.y-t.y,i=new Bs(t.x+n/2,t.y+r/2,1),a=new Bs(t.x-r+n/2,t.y+n+r/2,1);return new Bs(i,a)};zn.angleBisector=function(t,e,n){var r=e.distance(t),i=e.distance(n),a=r/(r+i),c=n.x-t.x,l=n.y-t.y,m=new Re(t.x+a*c,t.y+a*l);return m};zn.area3D=function(t,e,n){var r=e.x-t.x,i=e.y-t.y,a=e.z-t.z,c=n.x-t.x,l=n.y-t.y,m=n.z-t.z,b=i*m-a*l,S=a*c-r*m,E=r*l-i*c,T=b*b+S*S+E*E,A=Math.sqrt(T)/2;return A};zn.centroid=function(t,e,n){var r=(t.x+e.x+n.x)/3,i=(t.y+e.y+n.y)/3;return new Re(r,i)};zn.inCentre=function(t,e,n){var r=e.distance(n),i=t.distance(n),a=t.distance(e),c=r+i+a,l=(r*t.x+i*e.x+a*n.x)/c,m=(r*t.y+i*e.y+a*n.y)/c;return new Re(l,m)};var ws=function(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new _t;var t=arguments[0],e=arguments[1],n=arguments[2];this._inputGeom=t,this._distance=e,this._curveBuilder=n};ws.prototype.addPoint=function(t){if(this._distance<=0)return null;var e=t.getCoordinates(),n=this._curveBuilder.getLineCurve(e,this._distance);this.addCurve(n,Oe.EXTERIOR,Oe.INTERIOR)};ws.prototype.addPolygon=function(t){var e=this,n=this._distance,r=at.LEFT;this._distance<0&&(n=-this._distance,r=at.RIGHT);var i=t.getExteriorRing(),a=xn.removeRepeatedPoints(i.getCoordinates());if(this._distance<0&&this.isErodedCompletely(i,this._distance)||this._distance<=0&&a.length<3)return null;this.addPolygonRing(a,n,r,Oe.EXTERIOR,Oe.INTERIOR);for(var c=0;c0&&e.isErodedCompletely(l,-e._distance)||e.addPolygonRing(m,n,at.opposite(r),Oe.INTERIOR,Oe.EXTERIOR)}};ws.prototype.isTriangleErodedCompletely=function(t,e){var n=new zn(t[0],t[1],t[2]),r=n.inCentre(),i=wt.distancePointLine(r,n.p0,n.p1);return i=Wa.MINIMUM_VALID_SIZE&&wt.isCCW(t)&&(a=i,c=r,n=at.opposite(n));var l=this._curveBuilder.getRingCurve(t,n,e);this.addCurve(l,a,c)};ws.prototype.add=function(t){if(t.isEmpty())return null;t instanceof ei?this.addPolygon(t):t instanceof Ar?this.addLineString(t):t instanceof Do?this.addPoint(t):t instanceof Ff?this.addCollection(t):t instanceof Xu?this.addCollection(t):t instanceof ja?this.addCollection(t):t instanceof no&&this.addCollection(t)};ws.prototype.isErodedCompletely=function(t,e){var n=t.getCoordinates();if(n.length<4)return e<0;if(n.length===4)return this.isTriangleErodedCompletely(n,e);var r=t.getEnvelopeInternal(),i=Math.min(r.getHeight(),r.getWidth());return e<0&&2*Math.abs(e)>i};ws.prototype.addCollection=function(t){for(var e=this,n=0;n=this._max)throw new cp;var t=this._parent.getGeometryN(this._index++);return t instanceof no?(this._subcollectionIterator=new qa(t),this._subcollectionIterator.next()):t};qa.prototype.remove=function(){throw new Error(this.getClass().getName())};qa.prototype.hasNext=function(){if(this._atStart)return!0;if(this._subcollectionIterator!==null){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)};qa.prototype.interfaces_=function(){return[up]};qa.prototype.getClass=function(){return qa};qa.isAtomic=function(t){return!(t instanceof no)};var es=function(){this._geom=null;var t=arguments[0];this._geom=t};es.prototype.locate=function(t){return es.locate(t,this._geom)};es.prototype.interfaces_=function(){return[Gf]};es.prototype.getClass=function(){return es};es.isPointInRing=function(t,e){return e.getEnvelopeInternal().intersects(t)?wt.isPointInRing(t,e.getCoordinates()):!1};es.containsPointInPolygon=function(t,e){if(e.isEmpty())return!1;var n=e.getExteriorRing();if(!es.isPointInRing(t,n))return!1;for(var r=0;r=0;a--){var c=n._edgeList.get(a),l=c.getSym();i===null&&(i=l),r!==null&&l.setNext(r),r=c}i.setNext(r)},e.prototype.computeDepths=function(){var n=this;if(arguments.length===1){var r=arguments[0],i=this.findIndex(r),a=r.getDepth(at.LEFT),c=r.getDepth(at.RIGHT),l=this.computeDepths(i+1,this._edgeList.size(),a),m=this.computeDepths(0,i,l);if(m!==c)throw new Cl("depth mismatch at "+r.getCoordinate())}else if(arguments.length===3){for(var b=arguments[0],S=arguments[1],E=arguments[2],T=E,A=b;A=0;l--){var m=r._resultAreaEdgeList.get(l),b=m.getSym();switch(i===null&&m.getEdgeRing()===n&&(i=m),c){case r._SCANNING_FOR_INCOMING:if(b.getEdgeRing()!==n)continue;a=b,c=r._LINKING_TO_OUTGOING;break;case r._LINKING_TO_OUTGOING:if(m.getEdgeRing()!==n)continue;a.setNextMin(m),c=r._SCANNING_FOR_INCOMING;break}}c===this._LINKING_TO_OUTGOING&&(fn.isTrue(i!==null,"found null for first outgoing dirEdge"),fn.isTrue(i.getEdgeRing()===n,"unable to link last incoming dirEdge"),a.setNextMin(i))},e.prototype.getOutgoingDegree=function(){if(arguments.length===0){for(var n=0,r=this.iterator();r.hasNext();){var i=r.next();i.isInResult()&&n++}return n}else if(arguments.length===1){for(var a=arguments[0],c=0,l=this.iterator();l.hasNext();){var m=l.next();m.getEdgeRing()===a&&c++}return c}},e.prototype.getLabel=function(){return this._label},e.prototype.findCoveredLineEdges=function(){for(var n=Oe.NONE,r=this.iterator();r.hasNext();){var i=r.next(),a=i.getSym();if(!i.isLineEdge()){if(i.isInResult()){n=Oe.INTERIOR;break}if(a.isInResult()){n=Oe.EXTERIOR;break}}}if(n===Oe.NONE)return null;for(var c=n,l=this.iterator();l.hasNext();){var m=l.next(),b=m.getSym();m.isLineEdge()?m.getEdge().setCovered(c===Oe.INTERIOR):(m.isInResult()&&(c=Oe.EXTERIOR),b.isInResult()&&(c=Oe.INTERIOR))}},e.prototype.computeLabelling=function(n){var r=this;t.prototype.computeLabelling.call(this,n),this._label=new Un(Oe.NONE);for(var i=this.iterator();i.hasNext();)for(var a=i.next(),c=a.getEdge(),l=c.getLabel(),m=0;m<2;m++){var b=l.getLocation(m);(b===Oe.INTERIOR||b===Oe.BOUNDARY)&&r._label.setLocation(m,Oe.INTERIOR)}},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(qi),wC=function(t){function e(){t.apply(this,arguments)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.createNode=function(n){return new yy(n,new YN)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Bf),hu=function t(){this._pts=null,this._orientation=null;var e=arguments[0];this._pts=e,this._orientation=t.orientation(e)};hu.prototype.compareTo=function(t){var e=t,n=hu.compareOriented(this._pts,this._orientation,e._pts,e._orientation);return n};hu.prototype.interfaces_=function(){return[Ss]};hu.prototype.getClass=function(){return hu};hu.orientation=function(t){return xn.increasingDirection(t)===1};hu.compareOriented=function(t,e,n,r){for(var i=e?1:-1,a=r?1:-1,c=e?t.length:-1,l=r?n.length:-1,m=e?0:t.length-1,b=r?0:n.length-1;;){var S=t[m].compareTo(n[b]);if(S!==0)return S;m+=i,b+=a;var E=m===c,T=b===l;if(E&&!T)return-1;if(!E&&T)return 1;if(E&&T)return 0}};var $s=function(){this._edges=new _t,this._ocaMap=new Gi};$s.prototype.print=function(t){var e=this;t.print("MULTILINESTRING ( ");for(var n=0;n0&&t.print(","),t.print("(");for(var i=r.getCoordinates(),a=0;a0&&t.print(","),t.print(i[a].x+" "+i[a].y);t.println(")")}t.print(") ")};$s.prototype.addAll=function(t){for(var e=this,n=t.iterator();n.hasNext();)e.add(n.next())};$s.prototype.findEdgeIndex=function(t){for(var e=this,n=0;n0||!e.coord.equals2D(i);a||r--;var c=new Array(r).fill(null),l=0;c[l++]=new Re(t.coord);for(var m=t.segmentIndex+1;m<=e.segmentIndex;m++)c[l++]=n.edge.pts[m];return a&&(c[l]=e.coord),new N_(c,new Un(this.edge._label))};Xa.prototype.add=function(t,e,n){var r=new xa(t,e,n),i=this._nodeMap.get(r);return i!==null?i:(this._nodeMap.put(r,r),r)};Xa.prototype.isIntersection=function(t){for(var e=this.iterator();e.hasNext();){var n=e.next();if(n.coord.equals(t))return!0}return!1};Xa.prototype.interfaces_=function(){return[]};Xa.prototype.getClass=function(){return Xa};var Qu=function(){};Qu.prototype.getChainStartIndices=function(t){var e=this,n=0,r=new _t;r.add(new ma(n));do{var i=e.findChainEnd(t,n);r.add(new ma(i)),n=i}while(nn?e:n};Ll.prototype.getMinX=function(t){var e=this.pts[this.startIndex[t]].x,n=this.pts[this.startIndex[t+1]].x;return en&&(i=1),t._depth[e][r]=i}}};Mi.prototype.getDelta=function(t){return this._depth[t][at.RIGHT]-this._depth[t][at.LEFT]};Mi.prototype.getLocation=function(t,e){return this._depth[t][e]<=0?Oe.EXTERIOR:Oe.INTERIOR};Mi.prototype.toString=function(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]};Mi.prototype.add=function(){var t=this;if(arguments.length===1)for(var e=arguments[0],n=0;n<2;n++)for(var r=1;r<3;r++){var i=e.getLocation(n,r);(i===Oe.EXTERIOR||i===Oe.INTERIOR)&&(t.isNull(n,r)?t._depth[n][r]=Mi.depthAtLocation(i):t._depth[n][r]+=Mi.depthAtLocation(i))}else if(arguments.length===3){var a=arguments[0],c=arguments[1],l=arguments[2];l===Oe.INTERIOR&&this._depth[a][c]++}};Mi.prototype.interfaces_=function(){return[]};Mi.prototype.getClass=function(){return Mi};Mi.depthAtLocation=function(t){return t===Oe.EXTERIOR?0:t===Oe.INTERIOR?1:Mi.NULL_VALUE};SC.NULL_VALUE.get=function(){return-1};Object.defineProperties(Mi,SC);var N_=function(t){function e(){if(t.call(this),this.pts=null,this._env=null,this.eiList=new Xa(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new Mi,this._depthDelta=0,arguments.length===1){var n=arguments[0];e.call(this,n,null)}else if(arguments.length===2){var r=arguments[0],i=arguments[1];this.pts=r,this._label=i}}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.getDepth=function(){return this._depth},e.prototype.getCollapsedEdge=function(){var n=new Array(2).fill(null);n[0]=this.pts[0],n[1]=this.pts[1];var r=new e(n,Un.toLineLabel(this._label));return r},e.prototype.isIsolated=function(){return this._isIsolated},e.prototype.getCoordinates=function(){return this.pts},e.prototype.setIsolated=function(n){this._isIsolated=n},e.prototype.setName=function(n){this._name=n},e.prototype.equals=function(n){var r=this;if(!(n instanceof e))return!1;var i=n;if(this.pts.length!==i.pts.length)return!1;for(var a=!0,c=!0,l=this.pts.length,m=0;m0?this.pts[0]:null;if(arguments.length===1){var n=arguments[0];return this.pts[n]}},e.prototype.print=function(n){var r=this;n.print("edge "+this._name+": "),n.print("LINESTRING (");for(var i=0;i0&&n.print(","),n.print(r.pts[i].x+" "+r.pts[i].y);n.print(") "+this._label+" "+this._depthDelta)},e.prototype.computeIM=function(n){e.updateIM(this._label,n)},e.prototype.isCollapsed=function(){return!this._label.isArea()||this.pts.length!==3?!1:!!this.pts[0].equals(this.pts[2])},e.prototype.isClosed=function(){return this.pts[0].equals(this.pts[this.pts.length-1])},e.prototype.getMaximumSegmentIndex=function(){return this.pts.length-1},e.prototype.getDepthDelta=function(){return this._depthDelta},e.prototype.getNumPoints=function(){return this.pts.length},e.prototype.printReverse=function(n){var r=this;n.print("edge "+this._name+": ");for(var i=this.pts.length-1;i>=0;i--)n.print(r.pts[i]+" ");n.println("")},e.prototype.getMonotoneChainEdge=function(){return this._mce===null&&(this._mce=new Ll(this)),this._mce},e.prototype.getEnvelope=function(){var n=this;if(this._env===null){this._env=new Ot;for(var r=0;r0&&r.append(","),r.append(n.pts[i].x+" "+n.pts[i].y);return r.append(") "+this._label+" "+this._depthDelta),r.toString()},e.prototype.isPointwiseEqual=function(n){var r=this;if(this.pts.length!==n.pts.length)return!1;for(var i=0;ir||this._maxya;if(c)return!1;var l=this.intersectsToleranceSquare(t,e);return fn.isTrue(!(c&&l),"Found bad envelope test"),l};yo.prototype.initCorners=function(t){var e=.5;this._minx=t.x-e,this._maxx=t.x+e,this._miny=t.y-e,this._maxy=t.y+e,this._corner[0]=new Re(this._maxx,this._maxy),this._corner[1]=new Re(this._minx,this._maxy),this._corner[2]=new Re(this._minx,this._miny),this._corner[3]=new Re(this._maxx,this._miny)};yo.prototype.intersects=function(t,e){return this._scaleFactor===1?this.intersectsScaled(t,e):(this.copyScaled(t,this._p0Scaled),this.copyScaled(e,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))};yo.prototype.scale=function(t){return Math.round(t*this._scaleFactor)};yo.prototype.getCoordinate=function(){return this._originalPt};yo.prototype.copyScaled=function(t,e){e.x=this.scale(t.x),e.y=this.scale(t.y)};yo.prototype.getSafeEnvelope=function(){if(this._safeEnv===null){var t=yo.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new Ot(this._originalPt.x-t,this._originalPt.x+t,this._originalPt.y-t,this._originalPt.y+t)}return this._safeEnv};yo.prototype.intersectsPixelClosure=function(t,e){return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!(this._li.hasIntersection()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),this._li.hasIntersection())||(this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),this._li.hasIntersection())||(this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),this._li.hasIntersection()))};yo.prototype.intersectsToleranceSquare=function(t,e){var n=!1,r=!1;return this._li.computeIntersection(t,e,this._corner[0],this._corner[1]),!!(this._li.isProper()||(this._li.computeIntersection(t,e,this._corner[1],this._corner[2]),this._li.isProper())||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(t,e,this._corner[2],this._corner[3]),this._li.isProper())||(this._li.hasIntersection()&&(r=!0),this._li.computeIntersection(t,e,this._corner[3],this._corner[0]),this._li.isProper())||n&&r||t.equals(this._pt)||e.equals(this._pt))};yo.prototype.addSnappedNode=function(t,e){var n=t.getCoordinate(e),r=t.getCoordinate(e+1);return this.intersects(n,r)?(t.addIntersection(this.getCoordinate(),e),!0):!1};yo.prototype.interfaces_=function(){return[]};yo.prototype.getClass=function(){return yo};IC.SAFE_ENV_EXPANSION_FACTOR.get=function(){return .75};Object.defineProperties(yo,IC);var sm=function(){this.tempEnv1=new Ot,this.selectedSegment=new Bt};sm.prototype.select=function(){if(arguments.length!==1&&arguments.length===2){var t=arguments[0],e=arguments[1];t.getLineSegment(e,this.selectedSegment),this.select(this.selectedSegment)}};sm.prototype.interfaces_=function(){return[]};sm.prototype.getClass=function(){return sm};var jf=function(){this._index=null;var t=arguments[0];this._index=t},CC={HotPixelSnapAction:{configurable:!0}};jf.prototype.snap=function(){if(arguments.length===1){var t=arguments[0];return this.snap(t,null,-1)}else if(arguments.length===3){var e=arguments[0],n=arguments[1],r=arguments[2],i=e.getSafeEnvelope(),a=new TC(e,n,r);return this._index.query(i,{interfaces_:function(){return[uu]},visitItem:function(c){var l=c;l.select(i,a)}}),a.isNodeAdded()}};jf.prototype.interfaces_=function(){return[]};jf.prototype.getClass=function(){return jf};CC.HotPixelSnapAction.get=function(){return TC};Object.defineProperties(jf,CC);var TC=function(t){function e(){t.call(this),this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var n=arguments[0],r=arguments[1],i=arguments[2];this._hotPixel=n,this._parentEdge=r,this._hotPixelVertexIndex=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.isNodeAdded=function(){return this._isNodeAdded},e.prototype.select=function(){if(arguments.length===2){var n=arguments[0],r=arguments[1],i=n.getContext();if(this._parentEdge!==null&&i===this._parentEdge&&r===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(i,r)}else return t.prototype.select.apply(this,arguments)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(sm),Jc=function(){this._li=null,this._interiorIntersections=null;var t=arguments[0];this._li=t,this._interiorIntersections=new _t};Jc.prototype.processIntersections=function(t,e,n,r){var i=this;if(t===n&&e===r)return null;var a=t.getCoordinates()[e],c=t.getCoordinates()[e+1],l=n.getCoordinates()[r],m=n.getCoordinates()[r+1];if(this._li.computeIntersection(a,c,l,m),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var b=0;b=0;e--){try{t.bufferReducedPrecision(e)}catch(a){if(a instanceof Cl)t._saveException=a;else throw a}finally{}if(t._resultGeometry!==null)return null}throw this._saveException}else if(arguments.length===1){var n=arguments[0],r=Pi.precisionScaleFactor(this._argGeom,this._distance,n),i=new On(r);this.bufferFixedPrecision(i)}};Pi.prototype.computeGeometry=function(){if(this.bufferOriginalPrecision(),this._resultGeometry!==null)return null;var t=this._argGeom.getFactory().getPrecisionModel();t.getType()===On.FIXED?this.bufferFixedPrecision(t):this.bufferReducedPrecision()};Pi.prototype.setQuadrantSegments=function(t){this._bufParams.setQuadrantSegments(t)};Pi.prototype.bufferOriginalPrecision=function(){try{var t=new eo(this._bufParams);this._resultGeometry=t.buffer(this._argGeom,this._distance)}catch(e){if(e instanceof El)this._saveException=e;else throw e}finally{}};Pi.prototype.getResultGeometry=function(t){return this._distance=t,this.computeGeometry(),this._resultGeometry};Pi.prototype.setEndCapStyle=function(t){this._bufParams.setEndCapStyle(t)};Pi.prototype.interfaces_=function(){return[]};Pi.prototype.getClass=function(){return Pi};Pi.bufferOp=function(){if(arguments.length===2){var t=arguments[0],e=arguments[1],n=new Pi(t),r=n.getResultGeometry(e);return r}else if(arguments.length===3){if(Number.isInteger(arguments[2])&&arguments[0]instanceof qt&&typeof arguments[1]=="number"){var i=arguments[0],a=arguments[1],c=arguments[2],l=new Pi(i);l.setQuadrantSegments(c);var m=l.getResultGeometry(a);return m}else if(arguments[2]instanceof Nn&&arguments[0]instanceof qt&&typeof arguments[1]=="number"){var b=arguments[0],S=arguments[1],E=arguments[2],T=new Pi(b,E),A=T.getResultGeometry(S);return A}}else if(arguments.length===4){var D=arguments[0],O=arguments[1],z=arguments[2],G=arguments[3],F=new Pi(D);F.setQuadrantSegments(z),F.setEndCapStyle(G);var j=F.getResultGeometry(O);return j}};Pi.precisionScaleFactor=function(t,e,n){var r=t.getEnvelopeInternal(),i=ns.max(Math.abs(r.getMaxX()),Math.abs(r.getMaxY()),Math.abs(r.getMinX()),Math.abs(r.getMinY())),a=e>0?e:0,c=i+2*a,l=Math.trunc(Math.log(c)/Math.log(10)+1),m=n-l,b=Math.pow(10,m);return b};hp.CAP_ROUND.get=function(){return Nn.CAP_ROUND};hp.CAP_BUTT.get=function(){return Nn.CAP_FLAT};hp.CAP_FLAT.get=function(){return Nn.CAP_FLAT};hp.CAP_SQUARE.get=function(){return Nn.CAP_SQUARE};hp.MAX_PRECISION_DIGITS.get=function(){return 12};Object.defineProperties(Pi,hp);var Ki=function(){this._pt=[new Re,new Re],this._distance=on.NaN,this._isNull=!0};Ki.prototype.getCoordinates=function(){return this._pt};Ki.prototype.getCoordinate=function(t){return this._pt[t]};Ki.prototype.setMinimum=function(){if(arguments.length===1){var t=arguments[0];this.setMinimum(t._pt[0],t._pt[1])}else if(arguments.length===2){var e=arguments[0],n=arguments[1];if(this._isNull)return this.initialize(e,n),null;var r=e.distance(n);rthis._distance&&this.initialize(e,n,r)}};Ki.prototype.interfaces_=function(){return[]};Ki.prototype.getClass=function(){return Ki};var Ba=function(){};Ba.prototype.interfaces_=function(){return[]};Ba.prototype.getClass=function(){return Ba};Ba.computeDistance=function(){if(arguments[2]instanceof Ki&&arguments[0]instanceof Ar&&arguments[1]instanceof Re)for(var t=arguments[0],e=arguments[1],n=arguments[2],r=t.getCoordinates(),i=new Bt,a=0;a0||this._isIn?Oe.INTERIOR:Oe.EXTERIOR)};Ws.prototype.interfaces_=function(){return[]};Ws.prototype.getClass=function(){return Ws};var Ji=function t(){if(this._component=null,this._segIndex=null,this._pt=null,arguments.length===2){var e=arguments[0],n=arguments[1];t.call(this,e,t.INSIDE_AREA,n)}else if(arguments.length===3){var r=arguments[0],i=arguments[1],a=arguments[2];this._component=r,this._segIndex=i,this._pt=a}},LC={INSIDE_AREA:{configurable:!0}};Ji.prototype.isInsideArea=function(){return this._segIndex===Ji.INSIDE_AREA};Ji.prototype.getCoordinate=function(){return this._pt};Ji.prototype.getGeometryComponent=function(){return this._component};Ji.prototype.getSegmentIndex=function(){return this._segIndex};Ji.prototype.interfaces_=function(){return[]};Ji.prototype.getClass=function(){return Ji};LC.INSIDE_AREA.get=function(){return-1};Object.defineProperties(Ji,LC);var ou=function(t){this._pts=t||null};ou.prototype.filter=function(t){t instanceof Do&&this._pts.add(t)};ou.prototype.interfaces_=function(){return[_a]};ou.prototype.getClass=function(){return ou};ou.getPoints=function(){if(arguments.length===1){var t=arguments[0];return t instanceof Do?qs.singletonList(t):ou.getPoints(t,new _t)}else if(arguments.length===2){var e=arguments[0],n=arguments[1];return e instanceof Do?n.add(e):e instanceof no&&e.apply(new ou(n)),n}};var eh=function(){this._locations=null;var t=arguments[0];this._locations=t};eh.prototype.filter=function(t){(t instanceof Do||t instanceof Ar||t instanceof ei)&&this._locations.add(new Ji(t,0,t.getCoordinate()))};eh.prototype.interfaces_=function(){return[_a]};eh.prototype.getClass=function(){return eh};eh.getLocations=function(t){var e=new _t;return t.apply(new eh(e)),e};var Di=function(){if(this._geom=null,this._terminateDistance=0,this._ptLocator=new Ws,this._minDistanceLocation=null,this._minDistance=on.MAX_VALUE,arguments.length===2){var t=arguments[0],e=arguments[1];this._geom=[t,e],this._terminateDistance=0}else if(arguments.length===3){var n=arguments[0],r=arguments[1],i=arguments[2];this._geom=new Array(2).fill(null),this._geom[0]=n,this._geom[1]=r,this._terminateDistance=i}};Di.prototype.computeContainmentDistance=function(){var t=this;if(arguments.length===0){var e=new Array(2).fill(null);if(this.computeContainmentDistance(0,e),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,e)}else if(arguments.length===2){var n=arguments[0],r=arguments[1],i=1-n,a=wl.getPolygons(this._geom[n]);if(a.size()>0){var c=eh.getLocations(this._geom[i]);if(this.computeContainmentDistance(c,a,r),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[i]=r[0],this._minDistanceLocation[n]=r[1],null}}else if(arguments.length===3){if(arguments[2]instanceof Array&&Wt(arguments[0],Vs)&&Wt(arguments[1],Vs)){for(var l=arguments[0],m=arguments[1],b=arguments[2],S=0;Sthis._minDistance)return null;for(var i=e.getCoordinates(),a=n.getCoordinate(),c=0;cthis._minDistance)return null;for(var A=S.getCoordinates(),D=E.getCoordinates(),O=0;Othis._distance&&this.initialize(e,n,r)}};Bi.prototype.interfaces_=function(){return[]};Bi.prototype.getClass=function(){return Bi};var ua=function(){};ua.prototype.interfaces_=function(){return[]};ua.prototype.getClass=function(){return ua};ua.computeDistance=function(){if(arguments[2]instanceof Bi&&arguments[0]instanceof Ar&&arguments[1]instanceof Re)for(var t=arguments[0],e=arguments[1],n=arguments[2],r=new Bt,i=t.getCoordinates(),a=0;a1||t<=0)throw new gr("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=t};_s.prototype.compute=function(t,e){this.computeOrientedDistance(t,e,this._ptDist),this.computeOrientedDistance(e,t,this._ptDist)};_s.prototype.distance=function(){return this.compute(this._g0,this._g1),this._ptDist.getDistance()};_s.prototype.computeOrientedDistance=function(t,e,n){var r=new th(e);if(t.apply(r),n.setMaximum(r.getMaxPointDistance()),this._densifyFrac>0){var i=new du(e,this._densifyFrac);t.apply(i),n.setMaximum(i.getMaxPointDistance())}};_s.prototype.orientedDistance=function(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance()};_s.prototype.interfaces_=function(){return[]};_s.prototype.getClass=function(){return _s};_s.distance=function(){if(arguments.length===2){var t=arguments[0],e=arguments[1],n=new _s(t,e);return n.distance()}else if(arguments.length===3){var r=arguments[0],i=arguments[1],a=arguments[2],c=new _s(r,i);return c.setDensifyFraction(a),c.distance()}};$1.MaxPointDistanceFilter.get=function(){return th};$1.MaxDensifiedByFractionDistanceFilter.get=function(){return du};Object.defineProperties(_s,$1);var th=function(){this._maxPtDist=new Bi,this._minPtDist=new Bi,this._euclideanDist=new ua,this._geom=null;var t=arguments[0];this._geom=t};th.prototype.filter=function(t){this._minPtDist.initialize(),ua.computeDistance(this._geom,t,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)};th.prototype.getMaxPointDistance=function(){return this._maxPtDist};th.prototype.interfaces_=function(){return[$a]};th.prototype.getClass=function(){return th};var du=function(){this._maxPtDist=new Bi,this._minPtDist=new Bi,this._geom=null,this._numSubSegs=0;var t=arguments[0],e=arguments[1];this._geom=t,this._numSubSegs=Math.trunc(Math.round(1/e))};du.prototype.filter=function(t,e){var n=this;if(e===0)return null;for(var r=t.getCoordinate(e-1),i=t.getCoordinate(e),a=(i.x-r.x)/this._numSubSegs,c=(i.y-r.y)/this._numSubSegs,l=0;ln){this._isValid=!1;var i=r.getCoordinates();this._errorLocation=i[1],this._errorIndicator=t.getFactory().createLineString(i),this._errMsg="Distance between buffer curve and input is too large ("+this._maxDistanceFound+" at "+Us.toLineString(i[0],i[1])+")"}};Ao.prototype.isValid=function(){var t=Math.abs(this._bufDistance),e=Ao.MAX_DISTANCE_DIFF_FRAC*t;return this._minValidDistance=t-e,this._maxValidDistance=t+e,this._input.isEmpty()||this._result.isEmpty()?!0:(this._bufDistance>0?this.checkPositiveValid():this.checkNegativeValid(),Ao.VERBOSE&&ki.out.println("Min Dist= "+this._minDistanceFound+" err= "+(1-this._minDistanceFound/this._bufDistance)+" Max Dist= "+this._maxDistanceFound+" err= "+(this._maxDistanceFound/this._bufDistance-1)),this._isValid)};Ao.prototype.checkNegativeValid=function(){if(!(this._input instanceof ei||this._input instanceof ja||this._input instanceof no))return null;var t=this.getPolygonLines(this._input);if(this.checkMinimumDistance(t,this._result,this._minValidDistance),!this._isValid)return null;this.checkMaximumDistance(t,this._result,this._maxValidDistance)};Ao.prototype.getErrorIndicator=function(){return this._errorIndicator};Ao.prototype.checkMinimumDistance=function(t,e,n){var r=new Di(t,e,n);if(this._minDistanceFound=r.distance(),this._minDistanceFound0&&t>e&&(this._isValid=!1,this._errorMsg="Area of positive buffer is smaller than input",this._errorIndicator=this._result),this._distance<0&&t=2||this._distance>0)return null;this._result.isEmpty()||(this._isValid=!1,this._errorMsg="Result is non-empty",this._errorIndicator=this._result),this.report("ExpectedEmpty")};Ri.prototype.report=function(t){if(!Ri.VERBOSE)return null;ki.out.println("Check "+t+": "+(this._isValid?"passed":"FAILED"))};Ri.prototype.getErrorMessage=function(){return this._errorMsg};Ri.prototype.interfaces_=function(){return[]};Ri.prototype.getClass=function(){return Ri};Ri.isValidMsg=function(t,e,n){var r=new Ri(t,e,n);return r.isValid()?null:r.getErrorMessage()};Ri.isValid=function(t,e,n){var r=new Ri(t,e,n);return!!r.isValid()};Z1.VERBOSE.get=function(){return!1};Z1.MAX_ENV_DIFF_FRAC.get=function(){return .012};Object.defineProperties(Ri,Z1);var Sa=function(){this._pts=null,this._data=null;var t=arguments[0],e=arguments[1];this._pts=t,this._data=e};Sa.prototype.getCoordinates=function(){return this._pts};Sa.prototype.size=function(){return this._pts.length};Sa.prototype.getCoordinate=function(t){return this._pts[t]};Sa.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])};Sa.prototype.getSegmentOctant=function(t){return t===this._pts.length-1?-1:Yc.octant(this.getCoordinate(t),this.getCoordinate(t+1))};Sa.prototype.setData=function(t){this._data=t};Sa.prototype.getData=function(){return this._data};Sa.prototype.toString=function(){return Us.toLineString(new zr(this._pts))};Sa.prototype.interfaces_=function(){return[Ha]};Sa.prototype.getClass=function(){return Sa};var Ei=function(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new _t,this._intersectionCount=0,this._keepIntersections=!0;var t=arguments[0];this._li=t,this._interiorIntersection=null};Ei.prototype.getInteriorIntersection=function(){return this._interiorIntersection};Ei.prototype.setCheckEndSegmentsOnly=function(t){this._isCheckEndSegmentsOnly=t};Ei.prototype.getIntersectionSegments=function(){return this._intSegments};Ei.prototype.count=function(){return this._intersectionCount};Ei.prototype.getIntersections=function(){return this._intersections};Ei.prototype.setFindAllIntersections=function(t){this._findAllIntersections=t};Ei.prototype.setKeepIntersections=function(t){this._keepIntersections=t};Ei.prototype.processIntersections=function(t,e,n,r){if(!this._findAllIntersections&&this.hasIntersection()||t===n&&e===r)return null;if(this._isCheckEndSegmentsOnly){var i=this.isEndSegment(t,e)||this.isEndSegment(n,r);if(!i)return null}var a=t.getCoordinates()[e],c=t.getCoordinates()[e+1],l=n.getCoordinates()[r],m=n.getCoordinates()[r+1];this._li.computeIntersection(a,c,l,m),this._li.hasIntersection()&&this._li.isInteriorIntersection()&&(this._intSegments=new Array(4).fill(null),this._intSegments[0]=a,this._intSegments[1]=c,this._intSegments[2]=l,this._intSegments[3]=m,this._interiorIntersection=this._li.getIntersection(0),this._keepIntersections&&this._intersections.add(this._interiorIntersection),this._intersectionCount++)};Ei.prototype.isEndSegment=function(t,e){return e===0||e>=t.size()-2};Ei.prototype.hasIntersection=function(){return this._interiorIntersection!==null};Ei.prototype.isDone=function(){return this._findAllIntersections?!1:this._interiorIntersection!==null};Ei.prototype.interfaces_=function(){return[Ju]};Ei.prototype.getClass=function(){return Ei};Ei.createAllIntersectionsFinder=function(t){var e=new Ei(t);return e.setFindAllIntersections(!0),e};Ei.createAnyIntersectionFinder=function(t){return new Ei(t)};Ei.createIntersectionCounter=function(t){var e=new Ei(t);return e.setFindAllIntersections(!0),e.setKeepIntersections(!1),e};var Zs=function(){this._li=new uc,this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;var t=arguments[0];this._segStrings=t};Zs.prototype.execute=function(){if(this._segInt!==null)return null;this.checkInteriorIntersections()};Zs.prototype.getIntersections=function(){return this._segInt.getIntersections()};Zs.prototype.isValid=function(){return this.execute(),this._isValid};Zs.prototype.setFindAllIntersections=function(t){this._findAllIntersections=t};Zs.prototype.checkInteriorIntersections=function(){this._isValid=!0,this._segInt=new Ei(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var t=new j1;if(t.setSegmentIntersector(this._segInt),t.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null};Zs.prototype.checkValid=function(){if(this.execute(),!this._isValid)throw new Cl(this.getErrorMessage(),this._segInt.getInteriorIntersection())};Zs.prototype.getErrorMessage=function(){if(this._isValid)return"no intersections found";var t=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+Us.toLineString(t[0],t[1])+" and "+Us.toLineString(t[2],t[3])};Zs.prototype.interfaces_=function(){return[]};Zs.prototype.getClass=function(){return Zs};Zs.computeIntersections=function(t){var e=new Zs(t);return e.setFindAllIntersections(!0),e.isValid(),e.getIntersections()};var tc=function t(){this._nv=null;var e=arguments[0];this._nv=new Zs(t.toSegmentStrings(e))};tc.prototype.checkValid=function(){this._nv.checkValid()};tc.prototype.interfaces_=function(){return[]};tc.prototype.getClass=function(){return tc};tc.toSegmentStrings=function(t){for(var e=new _t,n=t.iterator();n.hasNext();){var r=n.next();e.add(new Sa(r.getCoordinates(),r))}return e};tc.checkValid=function(t){var e=new tc(t);e.checkValid()};var nh=function(t){this._mapOp=t};nh.prototype.map=function(t){for(var e=this,n=new _t,r=0;r0&&r<4&&!this._preserveType?this._factory.createLineString(n):this._factory.createLinearRing(n)};vo.prototype.interfaces_=function(){return[]};vo.prototype.getClass=function(){return vo};var Ka=function t(){if(this._snapTolerance=0,this._srcPts=null,this._seg=new Bt,this._allowSnappingToSourceVertices=!1,this._isClosed=!1,arguments[0]instanceof Ar&&typeof arguments[1]=="number"){var e=arguments[0],n=arguments[1];t.call(this,e.getCoordinates(),n)}else if(arguments[0]instanceof Array&&typeof arguments[1]=="number"){var r=arguments[0],i=arguments[1];this._srcPts=r,this._isClosed=t.isClosed(r),this._snapTolerance=i}};Ka.prototype.snapVertices=function(t,e){for(var n=this,r=this._isClosed?t.size()-1:t.size(),i=0;i=0&&t.add(c+1,new Re(a),!1)}};Ka.prototype.findSegmentIndexToSnap=function(t,e){for(var n=this,r=on.MAX_VALUE,i=-1,a=0;ae&&(e=r)}return e}else if(arguments.length===2){var i=arguments[0],a=arguments[1];return Math.min(Fr.computeOverlaySnapTolerance(i),Fr.computeOverlaySnapTolerance(a))}};Fr.computeSizeBasedSnapTolerance=function(t){var e=t.getEnvelopeInternal(),n=Math.min(e.getHeight(),e.getWidth()),r=n*Fr.SNAP_PRECISION_FACTOR;return r};Fr.snapToSelf=function(t,e,n){var r=new Fr(t);return r.snapToSelf(e,n)};PC.SNAP_PRECISION_FACTOR.get=function(){return 1e-9};Object.defineProperties(Fr,PC);var MC=function(t){function e(n,r,i){t.call(this),this._snapTolerance=n||null,this._snapPts=r||null,this._isSelfSnap=i!==void 0?i:!1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.snapLine=function(n,r){var i=new Ka(n,this._snapTolerance);return i.setAllowSnappingToSourceVertices(this._isSelfSnap),i.snapTo(r)},e.prototype.transformCoordinates=function(n,r){var i=n.toCoordinateArray(),a=this.snapLine(i,this._snapPts);return this._factory.getCoordinateSequenceFactory().create(a)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(vo),Yi=function(){this._isFirst=!0,this._commonMantissaBitsCount=53,this._commonBits=0,this._commonSignExp=null};Yi.prototype.getCommon=function(){return on.longBitsToDouble(this._commonBits)};Yi.prototype.add=function(t){var e=on.doubleToLongBits(t);if(this._isFirst)return this._commonBits=e,this._commonSignExp=Yi.signExpBits(this._commonBits),this._isFirst=!1,null;var n=Yi.signExpBits(e);if(n!==this._commonSignExp)return this._commonBits=0,null;this._commonMantissaBitsCount=Yi.numCommonMostSigMantissaBits(this._commonBits,e),this._commonBits=Yi.zeroLowerBits(this._commonBits,64-(12+this._commonMantissaBitsCount))};Yi.prototype.toString=function(){if(arguments.length===1){var t=arguments[0],e=on.longBitsToDouble(t),n=on.toBinaryString(t),r="0000000000000000000000000000000000000000000000000000000000000000"+n,i=r.substring(r.length-64),a=i.substring(0,1)+" "+i.substring(1,12)+"(exp) "+i.substring(12)+" [ "+e+" ]";return a}};Yi.prototype.interfaces_=function(){return[]};Yi.prototype.getClass=function(){return Yi};Yi.getBit=function(t,e){var n=1<>52};Yi.zeroLowerBits=function(t,e){var n=(1<=0;r--){if(Yi.getBit(t,r)!==Yi.getBit(e,r))return n;n++}return 52};var mu=function(){this._commonCoord=null,this._ccFilter=new ih},H1={CommonCoordinateFilter:{configurable:!0},Translater:{configurable:!0}};mu.prototype.addCommonBits=function(t){var e=new gu(this._commonCoord);t.apply(e),t.geometryChanged()};mu.prototype.removeCommonBits=function(t){if(this._commonCoord.x===0&&this._commonCoord.y===0)return t;var e=new Re(this._commonCoord);e.x=-e.x,e.y=-e.y;var n=new gu(e);return t.apply(n),t.geometryChanged(),t};mu.prototype.getCommonCoordinate=function(){return this._commonCoord};mu.prototype.add=function(t){t.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate()};mu.prototype.interfaces_=function(){return[]};mu.prototype.getClass=function(){return mu};H1.CommonCoordinateFilter.get=function(){return ih};H1.Translater.get=function(){return gu};Object.defineProperties(mu,H1);var ih=function(){this._commonBitsX=new Yi,this._commonBitsY=new Yi};ih.prototype.filter=function(t){this._commonBitsX.add(t.x),this._commonBitsY.add(t.y)};ih.prototype.getCommonCoordinate=function(){return new Re(this._commonBitsX.getCommon(),this._commonBitsY.getCommon())};ih.prototype.interfaces_=function(){return[$a]};ih.prototype.getClass=function(){return ih};var gu=function(){this.trans=null;var t=arguments[0];this.trans=t};gu.prototype.filter=function(t,e){var n=t.getOrdinate(e,0)+this.trans.x,r=t.getOrdinate(e,1)+this.trans.y;t.setOrdinate(e,0,n),t.setOrdinate(e,1,r)};gu.prototype.isDone=function(){return!1};gu.prototype.isGeometryChanged=function(){return!0};gu.prototype.interfaces_=function(){return[Gs]};gu.prototype.getClass=function(){return gu};var Ii=function(t,e){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null,this._geom[0]=t,this._geom[1]=e,this.computeSnapTolerance()};Ii.prototype.selfSnap=function(t){var e=new Fr(t),n=e.snapTo(t,this._snapTolerance);return n};Ii.prototype.removeCommonBits=function(t){this._cbr=new mu,this._cbr.add(t[0]),this._cbr.add(t[1]);var e=new Array(2).fill(null);return e[0]=this._cbr.removeCommonBits(t[0].copy()),e[1]=this._cbr.removeCommonBits(t[1].copy()),e};Ii.prototype.prepareResult=function(t){return this._cbr.addCommonBits(t),t};Ii.prototype.getResultGeometry=function(t){var e=this.snap(this._geom),n=ln.overlayOp(e[0],e[1],t);return this.prepareResult(n)};Ii.prototype.checkValid=function(t){t.isValid()||ki.out.println("Snapped geometry is invalid")};Ii.prototype.computeSnapTolerance=function(){this._snapTolerance=Fr.computeOverlaySnapTolerance(this._geom[0],this._geom[1])};Ii.prototype.snap=function(t){var e=this.removeCommonBits(t),n=Fr.snap(e[0],e[1],this._snapTolerance);return n};Ii.prototype.interfaces_=function(){return[]};Ii.prototype.getClass=function(){return Ii};Ii.overlayOp=function(t,e,n){var r=new Ii(t,e);return r.getResultGeometry(n)};Ii.union=function(t,e){return Ii.overlayOp(t,e,ln.UNION)};Ii.intersection=function(t,e){return Ii.overlayOp(t,e,ln.INTERSECTION)};Ii.symDifference=function(t,e){return Ii.overlayOp(t,e,ln.SYMDIFFERENCE)};Ii.difference=function(t,e){return Ii.overlayOp(t,e,ln.DIFFERENCE)};var oo=function(t,e){this._geom=new Array(2).fill(null),this._geom[0]=t,this._geom[1]=e};oo.prototype.getResultGeometry=function(t){var e=null,n=!1,r=null;try{e=ln.overlayOp(this._geom[0],this._geom[1],t);var i=!0;i&&(n=!0)}catch(a){if(a instanceof El)r=a;else throw a}finally{}if(!n)try{e=Ii.overlayOp(this._geom[0],this._geom[1],t)}catch(a){throw a instanceof El?r:a}finally{}return e};oo.prototype.interfaces_=function(){return[]};oo.prototype.getClass=function(){return oo};oo.overlayOp=function(t,e,n){var r=new oo(t,e);return r.getResultGeometry(n)};oo.union=function(t,e){return oo.overlayOp(t,e,ln.UNION)};oo.intersection=function(t,e){return oo.overlayOp(t,e,ln.INTERSECTION)};oo.symDifference=function(t,e){return oo.overlayOp(t,e,ln.SYMDIFFERENCE)};oo.difference=function(t,e){return oo.overlayOp(t,e,ln.DIFFERENCE)};var am=function(){this.mce=null,this.chainIndex=null;var t=arguments[0],e=arguments[1];this.mce=t,this.chainIndex=e};am.prototype.computeIntersections=function(t,e){this.mce.computeIntersectsForChain(this.chainIndex,t.mce,t.chainIndex,e)};am.prototype.interfaces_=function(){return[]};am.prototype.getClass=function(){return am};var Oo=function t(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,arguments.length===2){var e=arguments[0],n=arguments[1];this._eventType=t.DELETE,this._xValue=e,this._insertEvent=n}else if(arguments.length===3){var r=arguments[0],i=arguments[1],a=arguments[2];this._eventType=t.INSERT,this._label=r,this._xValue=i,this._obj=a}},X1={INSERT:{configurable:!0},DELETE:{configurable:!0}};Oo.prototype.isDelete=function(){return this._eventType===Oo.DELETE};Oo.prototype.setDeleteEventIndex=function(t){this._deleteEventIndex=t};Oo.prototype.getObject=function(){return this._obj};Oo.prototype.compareTo=function(t){var e=t;return this._xValuee._xValue?1:this._eventTypee._eventType?1:0};Oo.prototype.getInsertEvent=function(){return this._insertEvent};Oo.prototype.isInsert=function(){return this._eventType===Oo.INSERT};Oo.prototype.isSameLabel=function(t){return this._label===null?!1:this._label===t._label};Oo.prototype.getDeleteEventIndex=function(){return this._deleteEventIndex};Oo.prototype.interfaces_=function(){return[Ss]};Oo.prototype.getClass=function(){return Oo};X1.INSERT.get=function(){return 1};X1.DELETE.get=function(){return 2};Object.defineProperties(Oo,X1);var O_=function(){};O_.prototype.interfaces_=function(){return[]};O_.prototype.getClass=function(){return O_};var Ni=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;var t=arguments[0],e=arguments[1],n=arguments[2];this._li=t,this._includeProper=e,this._recordIsolated=n};Ni.prototype.isTrivialIntersection=function(t,e,n,r){if(t===n&&this._li.getIntersectionNum()===1){if(Ni.isAdjacentSegments(e,r))return!0;if(t.isClosed()){var i=t.getNumPoints()-1;if(e===0&&r===i||r===0&&e===i)return!0}}return!1};Ni.prototype.getProperIntersectionPoint=function(){return this._properIntersectionPoint};Ni.prototype.setIsDoneIfProperInt=function(t){this._isDoneWhenProperInt=t};Ni.prototype.hasProperInteriorIntersection=function(){return this._hasProperInterior};Ni.prototype.isBoundaryPointInternal=function(t,e){for(var n=e.iterator();n.hasNext();){var r=n.next(),i=r.getCoordinate();if(t.isIntersection(i))return!0}return!1};Ni.prototype.hasProperIntersection=function(){return this._hasProper};Ni.prototype.hasIntersection=function(){return this._hasIntersection};Ni.prototype.isDone=function(){return this._isDone};Ni.prototype.isBoundaryPoint=function(t,e){return e===null?!1:!!(this.isBoundaryPointInternal(t,e[0])||this.isBoundaryPointInternal(t,e[1]))};Ni.prototype.setBoundaryNodes=function(t,e){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=t,this._bdyNodes[1]=e};Ni.prototype.addIntersections=function(t,e,n,r){if(t===n&&e===r)return null;this.numTests++;var i=t.getCoordinates()[e],a=t.getCoordinates()[e+1],c=n.getCoordinates()[r],l=n.getCoordinates()[r+1];this._li.computeIntersection(i,a,c,l),this._li.hasIntersection()&&(this._recordIsolated&&(t.setIsolated(!1),n.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(t,e,n,r)||(this._hasIntersection=!0,(this._includeProper||!this._li.isProper())&&(t.addIntersections(this._li,e,0),n.addIntersections(this._li,r,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))))};Ni.prototype.interfaces_=function(){return[]};Ni.prototype.getClass=function(){return Ni};Ni.isAdjacentSegments=function(t,e){return Math.abs(t-e)===1};var KN=function(t){function e(){t.call(this),this.events=new _t,this.nOverlaps=null}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.prepareEvents=function(){var n=this;qs.sort(this.events);for(var r=0;re||this._maxa?1:0};lm.prototype.interfaces_=function(){return[Af]};lm.prototype.getClass=function(){return lm};var JN=function(t){function e(){t.call(this),this._item=null;var n=arguments[0],r=arguments[1],i=arguments[2];this._min=n,this._max=r,this._item=i}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.query=function(n,r,i){if(!this.intersects(n,r))return null;i.visitItem(this._item)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Ja),QN=function(t){function e(){t.call(this),this._node1=null,this._node2=null;var n=arguments[0],r=arguments[1];this._node1=n,this._node2=r,this.buildExtent(this._node1,this._node2)}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.buildExtent=function(n,r){this._min=Math.min(n._min,r._min),this._max=Math.max(n._max,r._max)},e.prototype.query=function(n,r,i){if(!this.intersects(n,r))return null;this._node1!==null&&this._node1.query(n,r,i),this._node2!==null&&this._node2.query(n,r,i)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e}(Ja),Qa=function(){this._leaves=new _t,this._root=null,this._level=0};Qa.prototype.buildTree=function(){var t=this;qs.sort(this._leaves,new Ja.NodeComparator);for(var e=this._leaves,n=null,r=new _t;;){if(t.buildLevel(e,r),r.size()===1)return r.get(0);n=e,e=r,r=n}};Qa.prototype.insert=function(t,e,n){if(this._root!==null)throw new Error("Index cannot be added to once it has been queried");this._leaves.add(new JN(t,e,n))};Qa.prototype.query=function(t,e,n){this.init(),this._root.query(t,e,n)};Qa.prototype.buildRoot=function(){if(this._root!==null)return null;this._root=this.buildTree()};Qa.prototype.printNode=function(t){ki.out.println(Us.toLineString(new Re(t._min,this._level),new Re(t._max,this._level)))};Qa.prototype.init=function(){if(this._root!==null)return null;this.buildRoot()};Qa.prototype.buildLevel=function(t,e){this._level++,e.clear();for(var n=0;n=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,r[0]),this.insertBoundaryPoint(this._argIndex,r[r.length-1])},e.prototype.getInvalidPoint=function(){return this._invalidPoint},e.prototype.getBoundaryPoints=function(){for(var n=this.getBoundaryNodes(),r=new Array(n.size()).fill(null),i=0,a=n.iterator();a.hasNext();){var c=a.next();r[i++]=c.getCoordinate().copy()}return r},e.prototype.getBoundaryNodes=function(){return this._boundaryNodes===null&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes},e.prototype.addSelfIntersectionNode=function(n,r,i){if(this.isBoundaryNode(n,r))return null;i===Oe.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(n,r):this.insertPoint(n,r,i)},e.prototype.addPolygonRing=function(n,r,i){if(n.isEmpty())return null;var a=xn.removeRepeatedPoints(n.getCoordinates());if(a.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=a[0],null;var c=r,l=i;wt.isCCW(a)&&(c=i,l=r);var m=new N_(a,new Un(this._argIndex,Oe.BOUNDARY,c,l));this._lineEdgeMap.put(n,m),this.insertEdge(m),this.insertPoint(this._argIndex,a[0],Oe.BOUNDARY)},e.prototype.insertPoint=function(n,r,i){var a=this._nodes.addNode(r),c=a.getLabel();c===null?a._label=new Un(n,i):c.setLocation(n,i)},e.prototype.createEdgeSetIntersector=function(){return new KN},e.prototype.addSelfIntersectionNodes=function(n){for(var r=this,i=this._edges.iterator();i.hasNext();)for(var a=i.next(),c=a.getLabel().getLocation(n),l=a.eiList.iterator();l.hasNext();){var m=l.next();r.addSelfIntersectionNode(n,m.coord,c)}},e.prototype.add=function(){if(arguments.length===1){var n=arguments[0];if(n.isEmpty())return null;if(n instanceof ja&&(this._useBoundaryDeterminationRule=!1),n instanceof ei)this.addPolygon(n);else if(n instanceof Ar)this.addLineString(n);else if(n instanceof Do)this.addPoint(n);else if(n instanceof Ff)this.addCollection(n);else if(n instanceof Xu)this.addCollection(n);else if(n instanceof ja)this.addCollection(n);else if(n instanceof no)this.addCollection(n);else throw new Error(n.getClass().getName())}else return t.prototype.add.apply(this,arguments)},e.prototype.addCollection=function(n){for(var r=this,i=0;i50?(this._areaPtLocator===null&&(this._areaPtLocator=new $f(this._parentGeom)),this._areaPtLocator.locate(n)):this._ptLocator.locate(n,this._parentGeom)},e.prototype.findEdge=function(){if(arguments.length===1){var n=arguments[0];return this._lineEdgeMap.get(n)}else return t.prototype.findEdge.apply(this,arguments)},e.prototype.interfaces_=function(){return[]},e.prototype.getClass=function(){return e},e.determineBoundary=function(n,r){return n.isInBoundary(r)?Oe.BOUNDARY:Oe.INTERIOR},e}(wr),Zf=function(){if(this._li=new uc,this._resultPrecisionModel=null,this._arg=null,arguments.length===1){var t=arguments[0];this.setComputationPrecision(t.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new yd(0,t)}else if(arguments.length===2){var e=arguments[0],n=arguments[1],r=bs.OGC_SFS_BOUNDARY_RULE;e.getPrecisionModel().compareTo(n.getPrecisionModel())>=0?this.setComputationPrecision(e.getPrecisionModel()):this.setComputationPrecision(n.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new yd(0,e,r),this._arg[1]=new yd(1,n,r)}else if(arguments.length===3){var i=arguments[0],a=arguments[1],c=arguments[2];i.getPrecisionModel().compareTo(a.getPrecisionModel())>=0?this.setComputationPrecision(i.getPrecisionModel()):this.setComputationPrecision(a.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new yd(0,i,c),this._arg[1]=new yd(1,a,c)}};Zf.prototype.getArgGeometry=function(t){return this._arg[t].getGeometry()};Zf.prototype.setComputationPrecision=function(t){this._resultPrecisionModel=t,this._li.setPrecisionModel(this._resultPrecisionModel)};Zf.prototype.interfaces_=function(){return[]};Zf.prototype.getClass=function(){return Zf};var Wu=function(){};Wu.prototype.interfaces_=function(){return[]};Wu.prototype.getClass=function(){return Wu};Wu.map=function(){if(arguments[0]instanceof qt&&Wt(arguments[1],Wu.MapOp)){for(var t=arguments[0],e=arguments[1],n=new _t,r=0;r=t.size()?null:t.get(e)};qr.union=function(t){var e=new qr(t);return e.union()};DC.STRTREE_NODE_CAPACITY.get=function(){return 4};Object.defineProperties(qr,DC);var z_=function(){};z_.prototype.interfaces_=function(){return[]};z_.prototype.getClass=function(){return z_};z_.union=function(t,e){if(t.isEmpty()||e.isEmpty()){if(t.isEmpty()&&e.isEmpty())return ln.createEmptyResult(ln.UNION,t,e,t.getFactory());if(t.isEmpty())return e.copy();if(e.isEmpty())return t.copy()}return t.checkNotGeometryCollection(t),t.checkNotGeometryCollection(e),oo.overlayOp(t,e,ln.UNION)};function cc(){return new F_}function F_(){this.reset()}F_.prototype={constructor:F_,reset:function(){this.s=this.t=0},add:function(t){J2(Fg,t,this.t),J2(this,Fg.s,this.s),this.s?this.t+=Fg.t:this.s=Fg.t},valueOf:function(){return this.s}};var Fg=new F_;function J2(t,e,n){var r=t.s=e+n,i=r-e,a=r-i;t.t=e-a+(n-i)}var Pr=1e-6,Xn=Math.PI,xl=Xn/2,Q2=Xn/4,Pl=Xn*2,Fu=180/Xn,aa=Xn/180,Qi=Math.abs,eO=Math.atan,Xf=Math.atan2,Kr=Math.cos,Jr=Math.sin,fp=Math.sqrt;function RC(t){return t>1?0:t<-1?Xn:Math.acos(t)}function oh(t){return t>1?xl:t<-1?-xl:Math.asin(t)}function Md(){}function B_(t,e){t&&tS.hasOwnProperty(t.type)&&tS[t.type](t,e)}var eS={Feature:function(t,e){B_(t.geometry,e)},FeatureCollection:function(t,e){for(var n=t.features,r=-1,i=n.length;++rXn?t-Pl:t<-Xn?t+Pl:t,e]}e1.invert=e1;function nO(t,e,n){return(t%=Pl)?e||n?NC(iS(t),oS(e,n)):iS(t):e||n?oS(e,n):e1}function rS(t){return function(e,n){return e+=t,[e>Xn?e-Pl:e<-Xn?e+Pl:e,n]}}function iS(t){var e=rS(t);return e.invert=rS(-t),e}function oS(t,e){var n=Kr(t),r=Jr(t),i=Kr(e),a=Jr(e);function c(l,m){var b=Kr(m),S=Kr(l)*b,E=Jr(l)*b,T=Jr(m),A=T*n+S*r;return[Xf(E*i-A*a,S*n-T*r),oh(A*i+E*a)]}return c.invert=function(l,m){var b=Kr(m),S=Kr(l)*b,E=Jr(l)*b,T=Jr(m),A=T*i-E*a;return[Xf(E*i+T*a,S*n+A*r),oh(A*n-S*r)]},c}function rO(t,e,n,r,i,a){if(n){var c=Kr(e),l=Jr(e),m=r*n;i==null?(i=e+r*Pl,a=e-m/2):(i=sS(c,i),a=sS(c,a),(r>0?ia)&&(i+=r*Pl));for(var b,S=i;r>0?S>a:S1&&t.push(t.pop().concat(t.shift()))},result:function(){var n=t;return t=[],e=null,n}}}function iO(t,e,n,r,i,a){var c=t[0],l=t[1],m=e[0],b=e[1],S=0,E=1,T=m-c,A=b-l,D;if(D=n-c,!(!T&&D>0)){if(D/=T,T<0){if(D0){if(D>E)return;D>S&&(S=D)}if(D=i-c,!(!T&&D<0)){if(D/=T,T<0){if(D>E)return;D>S&&(S=D)}else if(T>0){if(D0)){if(D/=A,A<0){if(D0){if(D>E)return;D>S&&(S=D)}if(D=a-l,!(!A&&D<0)){if(D/=A,A<0){if(D>E)return;D>S&&(S=D)}else if(A>0){if(D0&&(t[0]=c+S*T,t[1]=l+S*A),E<1&&(e[0]=c+E*T,e[1]=l+E*A),!0}}}}}function i_(t,e){return Qi(t[0]-e[0])=0;--l)i.point((E=S[l])[0],E[1]);else r(T.x,T.p.x,-1,i);T=T.p}T=T.o,S=T.z,A=!A}while(!T.v);i.lineEnd()}}}function aS(t){if(e=t.length){for(var e,n=0,r=t[0],i;++ne?1:t>=e?0:NaN}function oO(t){return t.length===1&&(t=sO(t)),{left:function(e,n,r,i){for(r==null&&(r=0),i==null&&(i=e.length);r>>1;t(e[a],n)<0?r=a+1:i=a}return r},right:function(e,n,r,i){for(r==null&&(r=0),i==null&&(i=e.length);r>>1;t(e[a],n)>0?i=a:r=a+1}return r}}}function sO(t){return function(e,n){return FC(t(e),n)}}oO(FC);function BC(t){for(var e=t.length,n,r=-1,i=0,a,c;++r=0;)for(c=t[e],n=c.length;--n>=0;)a[--i]=c[n];return a}var Ad=1e9,Gg=-Ad;function aO(t,e,n,r){function i(b,S){return t<=b&&b<=n&&e<=S&&S<=r}function a(b,S,E,T){var A=0,D=0;if(b==null||(A=c(b,E))!==(D=c(S,E))||m(b,S)<0^E>0)do T.point(A===0||A===3?t:n,A>1?r:e);while((A=(A+E+4)%4)!==D);else T.point(S[0],S[1])}function c(b,S){return Qi(b[0]-t)0?0:3:Qi(b[0]-n)0?2:1:Qi(b[1]-e)0?1:0:S>0?3:2}function l(b,S){return m(b.x,S.x)}function m(b,S){var E=c(b,1),T=c(S,1);return E!==T?E-T:E===0?S[1]-b[1]:E===1?b[0]-S[0]:E===2?b[1]-S[1]:S[0]-b[0]}return function(b){var S=b,E=OC(),T,A,D,O,z,G,F,j,Z,J,he,re={point:ye,lineStart:Ee,lineEnd:Qe,polygonStart:Ae,polygonEnd:me};function ye(lt,Ke){i(lt,Ke)&&S.point(lt,Ke)}function ae(){for(var lt=0,Ke=0,it=A.length;Ker&&(Dn-Ft)*(r-Ht)>(Sn-Ht)*(t-Ft)&&++lt:Sn<=r&&(Dn-Ft)*(r-Ht)<(Sn-Ht)*(t-Ft)&&--lt;return lt}function Ae(){S=E,T=[],A=[],he=!0}function me(){var lt=ae(),Ke=he&<,it=(T=BC(T)).length;(Ke||it)&&(b.polygonStart(),Ke&&(b.lineStart(),a(null,null,1,b),b.lineEnd()),it&&zC(T,l,lt,a,b),b.polygonEnd()),S=b,T=A=D=null}function Ee(){re.point=Le,A&&A.push(D=[]),J=!0,Z=!1,F=j=NaN}function Qe(){T&&(Le(O,z),G&&Z&&E.rejoin(),T.push(E.result())),re.point=ye,Z&&S.lineEnd()}function Le(lt,Ke){var it=i(lt,Ke);if(A&&D.push([lt,Ke]),J)O=lt,z=Ke,G=it,J=!1,it&&(S.lineStart(),S.point(lt,Ke));else if(it&&Z)S.point(lt,Ke);else{var Rt=[F=Math.max(Gg,Math.min(Ad,F)),j=Math.max(Gg,Math.min(Ad,j))],Gt=[lt=Math.max(Gg,Math.min(Ad,lt)),Ke=Math.max(Gg,Math.min(Ad,Ke))];iO(Rt,Gt,t,e,n,r)?(Z||(S.lineStart(),S.point(Rt[0],Rt[1])),S.point(Gt[0],Gt[1]),it||S.lineEnd(),he=!1):it&&(S.lineStart(),S.point(lt,Ke),he=!1)}F=lt,j=Ke,Z=it}return re}}var iv=cc();function lO(t,e){var n=e[0],r=e[1],i=[Jr(n),-Kr(n),0],a=0,c=0;iv.reset();for(var l=0,m=t.length;l=0?1:-1,ye=re*he,ae=ye>Xn,Ae=D*Z;if(iv.add(Xf(Ae*re*Jr(ye),O*J+Ae*Kr(ye))),a+=ae?he+re*Pl:he,ae^T>=n^F>=n){var me=V_(Yf(E),Yf(G));Qv(me);var Ee=V_(i,me);Qv(Ee);var Qe=(ae^he>=0?-1:1)*oh(Ee[2]);(r>Qe||r===Qe&&(me[0]||me[1]))&&(c+=ae^he>=0?1:-1)}}return(a<-Pr||aum&&(um=t),eG_&&(G_=e)}cc();function VC(t,e,n,r){return function(i,a){var c=e(a),l=i.invert(r[0],r[1]),m=OC(),b=e(m),S=!1,E,T,A,D={point:O,lineStart:G,lineEnd:F,polygonStart:function(){D.point=j,D.lineStart=Z,D.lineEnd=J,T=[],E=[]},polygonEnd:function(){D.point=O,D.lineStart=G,D.lineEnd=F,T=BC(T);var he=lO(E,l);T.length?(S||(a.polygonStart(),S=!0),zC(T,hO,he,n,a)):he&&(S||(a.polygonStart(),S=!0),a.lineStart(),n(null,null,1,a),a.lineEnd()),S&&(a.polygonEnd(),S=!1),T=E=null},sphere:function(){a.polygonStart(),a.lineStart(),n(null,null,1,a),a.lineEnd(),a.polygonEnd()}};function O(he,re){var ye=i(he,re);t(he=ye[0],re=ye[1])&&a.point(he,re)}function z(he,re){var ye=i(he,re);c.point(ye[0],ye[1])}function G(){D.point=z,c.lineStart()}function F(){D.point=O,c.lineEnd()}function j(he,re){A.push([he,re]);var ye=i(he,re);b.point(ye[0],ye[1])}function Z(){b.lineStart(),A=[]}function J(){j(A[0][0],A[0][1]),b.lineEnd();var he=b.clean(),re=m.result(),ye,ae=re.length,Ae,me,Ee;if(A.pop(),E.push(A),A=null,!!ae){if(he&1){if(me=re[0],(Ae=me.length-1)>0){for(S||(a.polygonStart(),S=!0),a.lineStart(),ye=0;ye1&&he&2&&re.push(re.pop().concat(re.shift())),T.push(re.filter(cO))}}return D}}function cO(t){return t.length>1}function hO(t,e){return((t=t.x)[0]<0?t[1]-xl-Pr:xl-t[1])-((e=e.x)[0]<0?e[1]-xl-Pr:xl-e[1])}const cS=VC(function(){return!0},fO,dO,[-Xn,-xl]);function fO(t){var e=NaN,n=NaN,r=NaN,i;return{lineStart:function(){t.lineStart(),i=1},point:function(a,c){var l=a>0?Xn:-Xn,m=Qi(a-e);Qi(m-Xn)0?xl:-xl),t.point(r,n),t.lineEnd(),t.lineStart(),t.point(l,n),t.point(a,n),i=0):r!==l&&m>=Xn&&(Qi(e-r)Pr?eO((Jr(e)*(a=Kr(r))*Jr(n)-Jr(r)*(i=Kr(e))*Jr(t))/(i*a*c)):(e+r)/2}function dO(t,e,n,r){var i;if(t==null)i=n*xl,r.point(-Xn,i),r.point(0,i),r.point(Xn,i),r.point(Xn,0),r.point(Xn,-i),r.point(0,-i),r.point(-Xn,-i),r.point(-Xn,0),r.point(-Xn,i);else if(Qi(t[0]-e[0])>Pr){var a=t[0]0,i=Qi(n)>Pr;function a(S,E,T,A){rO(A,t,e,T,S,E)}function c(S,E){return Kr(S)*Kr(E)>n}function l(S){var E,T,A,D,O;return{lineStart:function(){D=A=!1,O=1},point:function(z,G){var F=[z,G],j,Z=c(z,G),J=r?Z?0:b(z,G):Z?b(z+(z<0?Xn:-Xn),G):0;if(!E&&(D=A=Z)&&S.lineStart(),Z!==A&&(j=m(E,F),(!j||i_(E,j)||i_(F,j))&&(F[0]+=Pr,F[1]+=Pr,Z=c(F[0],F[1]))),Z!==A)O=0,Z?(S.lineStart(),j=m(F,E),S.point(j[0],j[1])):(j=m(E,F),S.point(j[0],j[1]),S.lineEnd()),E=j;else if(i&&E&&r^Z){var he;!(J&T)&&(he=m(F,E,!0))&&(O=0,r?(S.lineStart(),S.point(he[0][0],he[0][1]),S.point(he[1][0],he[1][1]),S.lineEnd()):(S.point(he[1][0],he[1][1]),S.lineEnd(),S.lineStart(),S.point(he[0][0],he[0][1])))}Z&&(!E||!i_(E,F))&&S.point(F[0],F[1]),E=F,A=Z,T=J},lineEnd:function(){A&&S.lineEnd(),E=null},clean:function(){return O|(D&&A)<<1}}}function m(S,E,T){var A=Yf(S),D=Yf(E),O=[1,0,0],z=V_(A,D),G=Bg(z,z),F=z[0],j=G-F*F;if(!j)return!T&&S;var Z=n*G/j,J=-n*F/j,he=V_(O,z),re=Vg(O,Z),ye=Vg(z,J);rv(re,ye);var ae=he,Ae=Bg(re,ae),me=Bg(ae,ae),Ee=Ae*Ae-me*(Bg(re,re)-1);if(!(Ee<0)){var Qe=fp(Ee),Le=Vg(ae,(-Ae-Qe)/me);if(rv(Le,re),Le=Jv(Le),!T)return Le;var lt=S[0],Ke=E[0],it=S[1],Rt=E[1],Gt;Ke0^Le[1]<(Qi(Le[0]-lt)Xn^(lt<=Le[0]&&Le[0]<=Ke)){var Ht=Vg(ae,(-Ae+Qe)/me);return rv(Ht,re),[Le,Jv(Ht)]}}}function b(S,E){var T=r?t:Xn-t,A=0;return S<-T?A|=1:S>T&&(A|=2),E<-T?A|=4:E>T&&(A|=8),A}return VC(c,l,a,r?[0,-t]:[-Xn,t-Xn])}function UC(t){return function(e){var n=new t1;for(var r in t)n[r]=t[r];return n.stream=e,n}}function t1(){}t1.prototype={constructor:t1,point:function(t,e){this.stream.point(t,e)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function GC(t,e,n){var r=e[1][0]-e[0][0],i=e[1][1]-e[0][1],a=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),a!=null&&t.clipExtent(null),tO(n,t.stream(uS));var c=uS.result(),l=Math.min(r/(c[1][0]-c[0][0]),i/(c[1][1]-c[0][1])),m=+e[0][0]+(r-l*(c[1][0]+c[0][0]))/2,b=+e[0][1]+(i-l*(c[1][1]+c[0][1]))/2;return a!=null&&t.clipExtent(a),t.scale(l*150).translate([m,b])}function gO(t,e,n){return GC(t,[[0,0],e],n)}var hS=16,_O=Kr(30*aa);function fS(t,e){return+e?vO(t,e):yO(t)}function yO(t){return UC({point:function(e,n){e=t(e,n),this.stream.point(e[0],e[1])}})}function vO(t,e){function n(r,i,a,c,l,m,b,S,E,T,A,D,O,z){var G=b-r,F=S-i,j=G*G+F*F;if(j>4*e&&O--){var Z=c+T,J=l+A,he=m+D,re=fp(Z*Z+J*J+he*he),ye=oh(he/=re),ae=Qi(Qi(he)-1)e||Qi((G*Qe+F*Le)/j-.5)>.3||c*T+l*A+m*D<_O)&&(n(r,i,a,c,l,m,me,Ee,ae,Z/=re,J/=re,he,O,z),z.point(me,Ee),n(me,Ee,ae,Z,J,he,b,S,E,T,A,D,O,z))}}return function(r){var i,a,c,l,m,b,S,E,T,A,D,O,z={point:G,lineStart:F,lineEnd:Z,polygonStart:function(){r.polygonStart(),z.lineStart=J},polygonEnd:function(){r.polygonEnd(),z.lineStart=F}};function G(ye,ae){ye=t(ye,ae),r.point(ye[0],ye[1])}function F(){E=NaN,z.point=j,r.lineStart()}function j(ye,ae){var Ae=Yf([ye,ae]),me=t(ye,ae);n(E,T,S,A,D,O,E=me[0],T=me[1],S=ye,A=Ae[0],D=Ae[1],O=Ae[2],hS,r),r.point(E,T)}function Z(){z.point=G,r.lineEnd()}function J(){F(),z.point=he,z.lineEnd=re}function he(ye,ae){j(i=ye,ae),a=E,c=T,l=A,m=D,b=O,z.point=j}function re(){n(E,T,S,A,D,O,a,c,i,l,m,b,hS,r),z.lineEnd=Z,Z()}return z}}var bO=UC({point:function(t,e){this.stream.point(t*aa,e*aa)}});function xO(t){return wO(function(){return t})()}function wO(t){var e,n=150,r=480,i=250,a,c,l=0,m=0,b=0,S=0,E=0,T,A,D=null,O=cS,z=null,G,F,j,Z=lS,J=.5,he=fS(me,J),re,ye;function ae(Le){return Le=A(Le[0]*aa,Le[1]*aa),[Le[0]*n+a,c-Le[1]*n]}function Ae(Le){return Le=A.invert((Le[0]-a)/n,(c-Le[1])/n),Le&&[Le[0]*Fu,Le[1]*Fu]}function me(Le,lt){return Le=e(Le,lt),[Le[0]*n+a,c-Le[1]*n]}ae.stream=function(Le){return re&&ye===Le?re:re=bO(O(T,he(Z(ye=Le))))},ae.clipAngle=function(Le){return arguments.length?(O=+Le?mO(D=Le*aa,6*aa):(D=null,cS),Qe()):D*Fu},ae.clipExtent=function(Le){return arguments.length?(Z=Le==null?(z=G=F=j=null,lS):aO(z=+Le[0][0],G=+Le[0][1],F=+Le[1][0],j=+Le[1][1]),Qe()):z==null?null:[[z,G],[F,j]]},ae.scale=function(Le){return arguments.length?(n=+Le,Ee()):n},ae.translate=function(Le){return arguments.length?(r=+Le[0],i=+Le[1],Ee()):[r,i]},ae.center=function(Le){return arguments.length?(l=Le[0]%360*aa,m=Le[1]%360*aa,Ee()):[l*Fu,m*Fu]},ae.rotate=function(Le){return arguments.length?(b=Le[0]%360*aa,S=Le[1]%360*aa,E=Le.length>2?Le[2]%360*aa:0,Ee()):[b*Fu,S*Fu,E*Fu]},ae.precision=function(Le){return arguments.length?(he=fS(me,J=Le*Le),Qe()):fp(J)},ae.fitExtent=function(Le,lt){return GC(ae,Le,lt)},ae.fitSize=function(Le,lt){return gO(ae,Le,lt)};function Ee(){A=NC(T=nO(b,S,E),e);var Le=e(l,m);return a=r-Le[0]*n,c=i+Le[1]*n,Qe()}function Qe(){return re=ye=null,ae}return function(){return e=t.apply(this,arguments),ae.invert=e.invert&&Ae,Ee()}}function jC(t){return function(e,n){var r=Kr(e),i=Kr(n),a=t(r*i);return[a*i*Jr(e),a*Jr(n)]}}function qC(t){return function(e,n){var r=fp(e*e+n*n),i=t(r),a=Jr(i),c=Kr(i);return[Xf(e*a,r*c),oh(r&&n*a/r)]}}var SO=jC(function(t){return fp(2/(1+t))});SO.invert=qC(function(t){return 2*oh(t/2)});var $C=jC(function(t){return(t=RC(t))&&t/Jr(t)});$C.invert=qC(function(t){return t});function EO(){return xO($C).scale(79.4188).clipAngle(180-.001)}function pS(t,e){return[t,e]}pS.invert=pS;function IO(t,e,n){n=n||{};var r=n.units||"kilometers",i=n.steps||8;if(!t)throw new Error("geojson is required");if(typeof n!="object")throw new Error("options must be an object");if(typeof i!="number")throw new Error("steps must be an number");if(e===void 0)throw new Error("radius is required");if(i<=0)throw new Error("steps must be greater than 0");var a=[];switch(t.type){case"GeometryCollection":return sC(t,function(c){var l=o_(c,e,r,i);l&&a.push(l)}),Hv(a);case"FeatureCollection":return Z2(t,function(c){var l=o_(c,e,r,i);l&&Z2(l,function(m){m&&a.push(m)})}),Hv(a)}return o_(t,e,r,i)}function o_(t,e,n,r){var i=t.properties||{},a=t.type==="Feature"?t.geometry:t;if(a.type==="GeometryCollection"){var c=[];return sC(t,function(O){var z=o_(O,e,n,r);z&&c.push(z)}),Hv(c)}var l=CO(a),m={type:a.type,coordinates:ZC(a.coordinates,l)},b=new G1,S=b.read(m),E=DN(RN(e,n),"meters"),T=Pi.bufferOp(S,E,r),A=new gC;if(T=A.write(T),!WC(T.coordinates)){var D={type:T.type,coordinates:HC(T.coordinates,l)};return ay(D,i)}}function WC(t){return Array.isArray(t[0])?WC(t[0]):isNaN(t[0])}function ZC(t,e){return typeof t[0]!="object"?e(t):t.map(function(n){return ZC(n,e)})}function HC(t,e){return typeof t[0]!="object"?e.invert(t):t.map(function(n){return HC(n,e)})}function CO(t){var e=ON(t).geometry.coordinates,n=[-e[0],-e[1]];return EO().rotate(n).scale(Xo)}function TO(t,e){var n=k_(t),r=k_(e),i=t.properties||{},a=tC.difference(n.coordinates,r.coordinates);return a.length===0?null:a.length===1?rC(a[0],i):iC(a,i)}function dS(t){let e;for(const n of t)e&&n[0]-e[0]>=180?n[0]-=360:e&&n[0]-e[0]<-180&&(n[0]+=360),e=n}function mS(t,e){const n=TO({type:"Polygon",coordinates:[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]]},t);if(!n)return;n.properties={isMask:"y"};const r=IO(t,0);if(r.geometry.type==="Polygon")for(const i of r.geometry.coordinates)dS(i);else for(const i of r.geometry.coordinates)for(const a of i)dS(a);e({type:"FeatureCollection",features:[r,n]})}let gS={type:"FeatureCollection",features:[]};function LO(t,e,n=!0,r=!0,i={},a={},c={fill:{paint:{"fill-color":"#000","fill-opacity":.1},filter:["all",["==",["geometry-type"],"Polygon"],["has","isMask"]]},line:{layout:{"line-cap":"square"},paint:{"line-width":["case",["==",["geometry-type"],"Polygon"],2,3],"line-dasharray":[1,1],"line-color":"#3170fe"},filter:["!",["has","isMask"]]}}){let l,m=[],b,S;function E(){(c!=null&&c.fill||c!=null&&c.line)&&t.addSource("full-geom",{type:"geojson",data:gS}),c!=null&&c.fill&&t.addLayer({...c==null?void 0:c.fill,id:"full-geom-fill",type:"fill",source:"full-geom"}),c!=null&&c.line&&t.addLayer({...c==null?void 0:c.line,id:"full-geom-line",type:"line",source:"full-geom"})}t.loaded()?E():t.once("load",()=>{E()});const T=D=>{l==null||l({type:"mapClick",coordinates:[D.lngLat.lng,D.lngLat.lat]})};function A(D=!1){if(!e)throw new Error;const O=document.createElement("div");return D&&O.classList.add("marker-interactive"),new rN({props:{displayIn:"maplibre"},target:O}),new e.Marker({element:O,offset:[1,-13]})}return{setEventHandler(D){D?(l=D,t.on("click",T)):(l=void 0,t.off("click",T))},flyTo(D,O){t.flyTo({center:D,zoom:O,...i})},fitBounds(D,O,z){t.fitBounds([[D[0],D[1]],[D[2],D[3]]],{padding:O,maxZoom:z,...a})},indicateReverse(D){t.getCanvasContainer().style.cursor=D?"crosshair":""},setReverseMarker(D){!e||!n||(S?D?S.setLngLat(D):(S.remove(),S=void 0):D&&(S=(typeof n=="object"?new e.Marker(n):A()).setLngLat(D).addTo(t),S.getElement().classList.add("marker-reverse")))},setMarkers(D,O){if(!n)return;function z(G){var F;(F=t.getSource("full-geom"))==null||F.setData(G)}for(const G of m)G.remove();if(m.length=0,z(gS),!!e){if(O){let G=!1;if(O.geometry.type==="GeometryCollection"){const F=O.geometry.geometries.filter(j=>j.type==="Polygon"||j.type==="MultiPolygon");if(F.length>0){let j=F.pop();for(const Z of F)j=NN(j,Z);mS({...O,geometry:j},z),G=!0}else{const j=O.geometry.geometries.filter(Z=>Z.type==="LineString"||Z.type==="MultiLineString");j.length>0&&(z({...O,geometry:{type:"GeometryCollection",geometries:j}}),G=!0)}}if(!G){if(O.geometry.type==="Polygon"||O.geometry.type==="MultiPolygon")mS(O,z);else if(O.geometry.type==="LineString"||O.geometry.type==="MultiLineString"){z(O);return}}n&&m.push((typeof n=="object"?new e.Marker(n):A()).setLngLat(O.center).addTo(t))}if(r)for(const G of D??[]){if(G===O)continue;const F=(typeof r=="object"?new e.Marker(r):A(!0)).setLngLat(G.center).setPopup(new e.Popup({offset:[1,-27],closeButton:!1,closeOnMove:!0,className:"maptiler-gc-popup"}).setText(G.place_type[0]==="reverse"?G.place_name:G.place_name.replace(/,.*/,""))).addTo(t),j=F.getElement();j.addEventListener("click",Z=>{Z.stopPropagation(),l==null||l({type:"markerClick",id:G.id})}),j.addEventListener("mouseenter",()=>{l==null||l({type:"markerMouseEnter",id:G.id}),F.togglePopup()}),j.addEventListener("mouseleave",()=>{l==null||l({type:"markerMouseLeave",id:G.id}),F.togglePopup()}),m.push(F)}}},setSelectedMarker(D){b&&b.getElement().classList.toggle("marker-selected",!1),b=D>-1?m[D]:void 0,b==null||b.getElement().classList.toggle("marker-selected",!0)},getCenterAndZoom(){const D=t.getCenter();return[t.getZoom(),D.lng,D.lat]}}}function PO(t){let e,n;return{c(){e=iu("svg"),n=iu("path"),Ie(n,"d","M13.12.706a.982.982 0 0 0-1.391 0L6.907 5.517 2.087.696a.982.982 0 1 0-1.391 1.39l4.821 4.821L.696 11.73a.982.982 0 1 0 1.39 1.39l4.821-4.821 4.822 4.821a.982.982 0 1 0 1.39-1.39L8.298 6.908l4.821-4.822a.988.988 0 0 0 0-1.38Z"),Ie(e,"viewBox","0 0 14 14"),Ie(e,"width","13"),Ie(e,"height","13"),Ie(e,"class","svelte-en2qvf")},m(r,i){be(r,e,i),se(e,n)},p:Mt,i:Mt,o:Mt,d(r){r&&ve(e)}}}class XC extends nn{constructor(e){super(),tn(this,e,null,PO,Zt,{})}}function MO(t){let e,n;return{c(){e=iu("svg"),n=iu("path"),Ie(n,"d","M15 0C6.705 0 0 6.705 0 15C0 23.295 6.705 30 15 30C23.295 30 30 23.295 30 15C30 6.705 23.295 0 15 0ZM22.5 20.385L20.385 22.5L15 17.115L9.615 22.5L7.5 20.385L12.885 15L7.5 9.615L9.615 7.5L15 12.885L20.385 7.5L22.5 9.615L17.115 15L22.5 20.385Z"),Ie(e,"viewBox","0 0 30 30"),Ie(e,"fill","none"),Ie(e,"xmlns","http://www.w3.org/2000/svg"),Ie(e,"class","svelte-d2loi5")},m(r,i){be(r,e,i),se(e,n)},p:Mt,i:Mt,o:Mt,d(r){r&&ve(e)}}}class YC extends nn{constructor(e){super(),tn(this,e,null,MO,Zt,{})}}function AO(t){let e,n;return{c(){e=de("img"),Vn(e.src,n=t[3]+"area.svg")||Ie(e,"src",n),Ie(e,"alt",t[6]),Ie(e,"class","svelte-ltkwvy")},m(r,i){be(r,e,i)},p(r,i){i&8&&!Vn(e.src,n=r[3]+"area.svg")&&Ie(e,"src",n),i&64&&Ie(e,"alt",r[6])},d(r){r&&ve(e)}}}function kO(t){let e,n;return{c(){e=de("img"),Vn(e.src,n=t[3]+"reverse.svg")||Ie(e,"src",n),Ie(e,"alt",t[6]),Ie(e,"class","svelte-ltkwvy")},m(r,i){be(r,e,i)},p(r,i){i&8&&!Vn(e.src,n=r[3]+"reverse.svg")&&Ie(e,"src",n),i&64&&Ie(e,"alt",r[6])},d(r){r&&ve(e)}}}function DO(t){let e,n;return{c(){e=de("img"),Vn(e.src,n=t[3]+"poi.svg")||Ie(e,"src",n),Ie(e,"alt",t[6]),Ie(e,"class","svelte-ltkwvy")},m(r,i){be(r,e,i)},p(r,i){i&8&&!Vn(e.src,n=r[3]+"poi.svg")&&Ie(e,"src",n),i&64&&Ie(e,"alt",r[6])},d(r){r&&ve(e)}}}function RO(t){let e,n;return{c(){e=de("img"),Vn(e.src,n=t[3]+"postal_code.svg")||Ie(e,"src",n),Ie(e,"alt",t[6]),Ie(e,"class","svelte-ltkwvy")},m(r,i){be(r,e,i)},p(r,i){i&8&&!Vn(e.src,n=r[3]+"postal_code.svg")&&Ie(e,"src",n),i&64&&Ie(e,"alt",r[6])},d(r){r&&ve(e)}}}function NO(t){let e,n;return{c(){e=de("img"),Vn(e.src,n=t[3]+"street.svg")||Ie(e,"src",n),Ie(e,"alt",t[6]),Ie(e,"class","svelte-ltkwvy")},m(r,i){be(r,e,i)},p(r,i){i&8&&!Vn(e.src,n=r[3]+"street.svg")&&Ie(e,"src",n),i&64&&Ie(e,"alt",r[6])},d(r){r&&ve(e)}}}function OO(t){let e,n;return{c(){e=de("img"),Vn(e.src,n=t[3]+"road.svg")||Ie(e,"src",n),Ie(e,"alt",t[6]),Ie(e,"class","svelte-ltkwvy")},m(r,i){be(r,e,i)},p(r,i){i&8&&!Vn(e.src,n=r[3]+"road.svg")&&Ie(e,"src",n),i&64&&Ie(e,"alt",r[6])},d(r){r&&ve(e)}}}function zO(t){let e,n;return{c(){e=de("img"),Vn(e.src,n=t[3]+"housenumber.svg")||Ie(e,"src",n),Ie(e,"alt",t[6]),Ie(e,"class","svelte-ltkwvy")},m(r,i){be(r,e,i)},p(r,i){i&8&&!Vn(e.src,n=r[3]+"housenumber.svg")&&Ie(e,"src",n),i&64&&Ie(e,"alt",r[6])},d(r){r&&ve(e)}}}function FO(t){let e,n,r,i;return{c(){e=de("img"),Vn(e.src,n=t[5])||Ie(e,"src",n),Ie(e,"alt",t[4]),Ie(e,"class","svelte-ltkwvy")},m(a,c){be(a,e,c),r||(i=Lt(e,"error",t[14]),r=!0)},p(a,c){c&32&&!Vn(e.src,n=a[5])&&Ie(e,"src",n),c&16&&Ie(e,"alt",a[4])},d(a){a&&ve(e),r=!1,i()}}}function _S(t){let e,n;return{c(){e=de("span"),n=dt(t[6]),Ie(e,"class","secondary svelte-ltkwvy")},m(r,i){be(r,e,i),se(e,n)},p(r,i){i&64&&mr(n,r[6])},d(r){r&&ve(e)}}}function BO(t){var re,ye;let e,n,r,i,a,c,l,m,b=(t[7]?t[0].place_name:t[0].place_name.replace(/,.*/,""))+"",S,E,T=t[2]==="always"||t[2]&&!t[0].address&&((re=t[0].properties)==null?void 0:re.kind)!=="road"&&((ye=t[0].properties)==null?void 0:ye.kind)!=="road_relation"&&!t[0].id.startsWith("address.")&&!t[0].id.startsWith("postal_code.")&&(!t[0].id.startsWith("poi.")||!t[5])&&!t[7],A,D,O=(t[7]?"":t[0].place_name.replace(/[^,]*,?\s*/,""))+"",z,G,F;function j(ae,Ae){var me,Ee;return Ae&1&&(n=null),Ae&1&&(r=null),Ae&1&&(i=null),ae[5]?FO:ae[0].address?zO:((me=ae[0].properties)==null?void 0:me.kind)==="road"||((Ee=ae[0].properties)==null?void 0:Ee.kind)==="road_relation"?OO:(n==null&&(n=!!ae[0].id.startsWith("address.")),n?NO:(r==null&&(r=!!ae[0].id.startsWith("postal_code.")),r?RO:(i==null&&(i=!!ae[0].id.startsWith("poi.")),i?DO:ae[7]?kO:AO)))}let Z=j(t,-1),J=Z(t),he=T&&_S(t);return{c(){e=de("li"),J.c(),a=$e(),c=de("span"),l=de("span"),m=de("span"),S=dt(b),E=$e(),he&&he.c(),A=$e(),D=de("span"),z=dt(O),Ie(m,"class","primary svelte-ltkwvy"),Ie(l,"class","svelte-ltkwvy"),Ie(D,"class","line2 svelte-ltkwvy"),Ie(c,"class","texts svelte-ltkwvy"),Ie(e,"tabindex","0"),Ie(e,"data-selected",t[1]),Ie(e,"class","svelte-ltkwvy"),bl(e,"selected",t[1])},m(ae,Ae){be(ae,e,Ae),J.m(e,null),se(e,a),se(e,c),se(c,l),se(l,m),se(m,S),se(l,E),he&&he.m(l,null),se(c,A),se(c,D),se(D,z),G||(F=[Lt(e,"mouseenter",t[12]),Lt(e,"focus",t[13])],G=!0)},p(ae,[Ae]){var me,Ee;Z===(Z=j(ae,Ae))&&J?J.p(ae,Ae):(J.d(1),J=Z(ae),J&&(J.c(),J.m(e,a))),Ae&1&&b!==(b=(ae[7]?ae[0].place_name:ae[0].place_name.replace(/,.*/,""))+"")&&mr(S,b),Ae&37&&(T=ae[2]==="always"||ae[2]&&!ae[0].address&&((me=ae[0].properties)==null?void 0:me.kind)!=="road"&&((Ee=ae[0].properties)==null?void 0:Ee.kind)!=="road_relation"&&!ae[0].id.startsWith("address.")&&!ae[0].id.startsWith("postal_code.")&&(!ae[0].id.startsWith("poi.")||!ae[5])&&!ae[7]),T?he?he.p(ae,Ae):(he=_S(ae),he.c(),he.m(l,null)):he&&(he.d(1),he=null),Ae&1&&O!==(O=(ae[7]?"":ae[0].place_name.replace(/[^,]*,?\s*/,""))+"")&&mr(z,O),Ae&2&&Ie(e,"data-selected",ae[1]),Ae&2&&bl(e,"selected",ae[1])},i:Mt,o:Mt,d(ae){ae&&ve(e),J.d(),he&&he.d(),G=!1,ti(F)}}}function VO(t,e,n){var j;let r,i,{feature:a}=e,{selected:c=!1}=e,{showPlaceType:l}=e,{missingIconsCache:m}=e,{iconsBaseUrl:b}=e;const S=(j=a.properties)==null?void 0:j.categories;let E,T,A=0,D=a.place_type[0]==="reverse";function O(Z){T&&m.add(T),n(10,A++,A)}function z(Z){ir.call(this,t,Z)}function G(Z){ir.call(this,t,Z)}const F=Z=>O(Z.currentTarget);return t.$$set=Z=>{"feature"in Z&&n(0,a=Z.feature),"selected"in Z&&n(1,c=Z.selected),"showPlaceType"in Z&&n(2,l=Z.showPlaceType),"missingIconsCache"in Z&&n(9,m=Z.missingIconsCache),"iconsBaseUrl"in Z&&n(3,b=Z.iconsBaseUrl)},t.$$.update=()=>{var Z,J,he,re;if(t.$$.dirty&3640)do n(11,r--,r),n(4,E=S==null?void 0:S[r]),n(5,T=E?b+E.replace(/ /g,"_")+".svg":void 0);while(r>-1&&(!T||m.has(T)));t.$$.dirty&1&&n(6,i=a.id.startsWith("poi.")?(J=(Z=a.properties)==null?void 0:Z.categories)==null?void 0:J.join(", "):((re=(he=a.properties)==null?void 0:he.place_type_name)==null?void 0:re[0])??a.place_type[0])},n(11,r=(S==null?void 0:S.length)??0),[a,c,l,b,E,T,i,D,O,m,A,r,z,G,F]}class UO extends nn{constructor(e){super(),tn(this,e,VO,BO,Zt,{feature:0,selected:1,showPlaceType:2,missingIconsCache:9,iconsBaseUrl:3})}}function GO(t){let e;return{c(){e=de("div"),e.innerHTML='',Ie(e,"class","svelte-7cmwmc")},m(n,r){be(n,e,r)},p:Mt,i:Mt,o:Mt,d(n){n&&ve(e)}}}class jO extends nn{constructor(e){super(),tn(this,e,null,GO,Zt,{})}}function qO(t){let e,n;return{c(){e=iu("svg"),n=iu("path"),Ie(n,"d","M30.003-26.765C13.46-26.765 0-14.158 0 1.337c0 23.286 24.535 42.952 28.39 46.04.24.192.402.316.471.376.323.282.732.424 1.142.424.41 0 .82-.142 1.142-.424.068-.06.231-.183.471-.376 3.856-3.09 28.39-22.754 28.39-46.04 0-15.495-13.46-28.102-30.003-28.102Zm1.757 12.469c4.38 0 7.858 1.052 10.431 3.158 2.595 2.105 3.89 4.913 3.89 8.422 0 2.34-.53 4.362-1.593 6.063-1.063 1.702-3.086 3.616-6.063 5.742-2.042 1.51-3.337 2.659-3.89 3.446-.532.787-.8 1.82-.8 3.096v1.914h-8.449V15.18c0-2.041.434-3.815 1.306-5.325.872-1.51 2.467-3.118 4.785-4.82 2.233-1.594 3.7-2.89 4.402-3.889a5.582 5.582 0 0 0 1.087-3.35c0-1.382-.51-2.435-1.531-3.158-1.02-.723-2.45-1.087-4.28-1.087-3.19 0-6.826 1.047-10.91 3.131l-3.472-6.986c4.742-2.659 9.77-3.992 15.087-3.992Zm-1.88 37.324c1.765 0 3.124.472 4.08 1.408.98.936 1.47 2.276 1.47 4.02 0 1.68-.49 3.007-1.47 3.985-.977.957-2.336 1.435-4.08 1.435-1.787 0-3.171-.465-4.15-1.4-.978-.958-1.47-2.298-1.47-4.02 0-1.787.48-3.14 1.436-4.054.957-.915 2.355-1.374 4.184-1.374Z"),Ie(e,"viewBox","0 0 60.006 21.412"),Ie(e,"width","14"),Ie(e,"height","20"),Ie(e,"class","svelte-en2qvf")},m(r,i){be(r,e,i),se(e,n)},p:Mt,i:Mt,o:Mt,d(r){r&&ve(e)}}}class $O extends nn{constructor(e){super(),tn(this,e,null,qO,Zt,{})}}function WO(t){let e,n,r;return{c(){e=iu("svg"),n=iu("circle"),r=iu("path"),Ie(n,"cx","4.789"),Ie(n,"cy","4.787"),Ie(n,"r","3.85"),nr(n,"stroke-width","1.875"),nr(n,"fill","none"),Ie(r,"d","M12.063 12.063 7.635 7.635"),nr(r,"stroke-width","1.875"),nr(r,"stroke-linecap","round"),Ie(e,"xmlns","http://www.w3.org/2000/svg"),Ie(e,"width","13"),Ie(e,"height","13"),Ie(e,"viewBox","0 0 13 13"),Ie(e,"class","svelte-1bpbt60")},m(i,a){be(i,e,a),se(e,n),se(e,r)},p:Mt,i:Mt,o:Mt,d(i){i&&ve(e)}}}class ZO extends nn{constructor(e){super(),tn(this,e,null,WO,Zt,{})}}function HO(t,e,n){const r=e[1],i=e[0],a=r-i;return t===r&&n?t:((t-i)%a+a)%a+i}function yS(t){const e=[...t];return e[2]r[0]||i.maxZoom!=null&&i.maxZoomDate.now()){if(!vd.coords)break e;return vd.coords}let a;try{return a=await new Promise((c,l)=>{n.signal.addEventListener("abort",()=>{l(Error("aborted"))}),navigator.geolocation.getCurrentPosition(m=>{c([m.coords.longitude,m.coords.latitude].map(b=>b.toFixed(6)).join(","))},m=>{l(m)},i)}),a}catch{}finally{i.cachedLocationExpiry&&(vd={time:Date.now(),coords:a})}if(n.signal.aborted)return}if(i.type==="server-geolocation")return"ip";if(r&&i.type==="map-center")return r[1].toFixed(6)+","+r[2].toFixed(6)}}const vS=/(NORTH|SOUTH|[NS])?[\s]*([+-]?[0-8]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(NORTH|SOUTH|[NS])?[\s]*[,/;]?[\s]*(EAST|WEST|[EW])?[\s]*([+-]?[0-1]?[0-9]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(EAST|WEST|[EW])?/i,bS=/(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(EAST|WEST|[EW])?/i,xS=/(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)\s*(EAST|WEST|[EW])?/i,wS=/(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|’’|´´|["″”\.])?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|´´|’’|["″”\.])?\s*(EAST|WEST|[EW])?/i;function YO(t){if(!["DMS","DM","DD"].includes(t))throw new Error("invalid format specified");if(this.decimalCoordinates&&this.decimalCoordinates.trim()){if(t=="DD")return this.decimalCoordinates;const e=this.decimalCoordinates.split(",").map(c=>Number(c.trim()));let n=SS(e[0],t),r=SS(e[1],t);n.endsWith('.0"')&&r.endsWith('.0"')&&(n=n.replace(/\.0"$/,'"'),r=r.replace(/\.0"$/,'"'));const i=e[0]>=0?" N":" S",a=e[1]>=0?" E":" W";return`${n+i}, ${r+a}`}else throw new Error("no decimal coordinates to convert")}function SS(t,e){const n=Math.abs(t),r=Math.floor(n),i=(n-r)*60;if(e=="DM"){let l=KO(i,3).toFixed(3).padStart(6,"0");return`${r}° ${l}'`}let a=Math.floor(i),c=((i-a)*60).toFixed(1).padStart(4,"0");return a=a.toString().padStart(2,"0"),`${r}° ${a}' ${c}"`}function KO(t,e){const n=Math.pow(10,e);return Math.round((t+Number.EPSILON)*n)/n}function K1(t,e){e||(e=5),t=t.replace(/\s+/g," ").trim();let n=null,r=null,i="",a="",c=[],l=!1;if(vS.test(t))if(c=vS.exec(t),l=jg(c),l){if(n=c[2],r=c[6],n.includes(",")&&(n=n.replace(",",".")),r.includes(",")&&(r=r.replace(",",".")),Number(Math.round(n))==Number(n))throw new Error("integer only coordinate provided");if(Number(Math.round(r))==Number(r))throw new Error("integer only coordinate provided");c[1]?(i=c[1],a=c[5]):c[4]&&(i=c[4],a=c[8])}else throw new Error("invalid decimal coordinate format");else if(bS.test(t))if(c=bS.exec(t),l=jg(c),l)n=Math.abs(parseInt(c[2])),c[4]&&(n+=c[4]/60),c[6]&&(n+=c[6].replace(",",".")/3600),parseInt(c[2])<0&&(n=-1*n),r=Math.abs(parseInt(c[9])),c[11]&&(r+=c[11]/60),c[13]&&(r+=c[13].replace(",",".")/3600),parseInt(c[9])<0&&(r=-1*r),c[1]?(i=c[1],a=c[8]):c[7]&&(i=c[7],a=c[14]);else throw new Error("invalid DMS coordinates format");else if(xS.test(t))if(c=xS.exec(t),l=jg(c),l)n=Math.abs(parseInt(c[2])),c[4]&&(n+=c[4]/60),c[6]&&(n+=c[6]/3600),parseInt(c[2])<0&&(n=-1*n),r=Math.abs(parseInt(c[10])),c[12]&&(r+=c[12]/60),c[14]&&(r+=c[14]/3600),parseInt(c[10])<0&&(r=-1*r),c[1]?(i=c[1],a=c[9]):c[8]&&(i=c[8],a=c[16]);else throw new Error("invalid DMS coordinates format");else if(wS.test(t))if(c=wS.exec(t),l=jg(c),l)n=Math.abs(parseInt(c[2])),c[4]&&(n+=c[4]/60),c[6]&&(n+=c[6]/3600),parseInt(c[2])<0&&(n=-1*n),r=Math.abs(parseInt(c[10])),c[12]&&(r+=c[12]/60),c[14]&&(r+=c[14]/3600),parseInt(c[10])<0&&(r=-1*r),c[1]?(i=c[1],a=c[9]):c[8]&&(i=c[8],a=c[16]);else throw new Error("invalid coordinates format");if(l){if(Math.abs(r)>=180)throw new Error("invalid longitude value");if(Math.abs(n)>=90)throw new Error("invalid latitude value");if((i||a)&&(!i||!a))throw new Error("invalid coordinates format");if(i&&i==a)throw new Error("invalid coordinates format");let m=/S|SOUTH/i;m.test(i)&&n>0&&(n=-1*n),m=/W|WEST/i,m.test(a)&&r>0&&(r=-1*r);const b=c[0].trim();let S,E;const T=/[,/;\u0020]/g,A=b.match(T);if(A==null){const z=Math.floor(t.length/2);S=b.substring(0,z).trim(),E=b.substring(z).trim()}else{let z;A.length%2==1?z=Math.floor(A.length/2):z=A.length/2-1;let G=0;if(z==0)G=b.indexOf(A[0]),S=b.substring(0,G).trim(),E=b.substring(G+1).trim();else{let F=0,j=0;for(;F<=z;)G=b.indexOf(A[F],j),j=G+1,F++;S=b.substring(0,G).trim(),E=b.substring(G+1).trim()}}const D=S.split(".");if(D.length==2&&D[1]==0&&D[1].length!=2)throw new Error("invalid coordinates format");const O=E.split(".");if(O.length==2&&O[1]==0&&O[1].length!=2)throw new Error("invalid coordinates format");if(/^\d+$/.test(S)||/^\d+$/.test(E))throw new Error("degree only coordinate/s provided");return isNaN(n)&&n.includes(",")&&(n=n.replace(",",".")),n=Number(Number(n).toFixed(e)),isNaN(r)&&r.includes(",")&&(r=r.replace(",",".")),r=Number(Number(r).toFixed(e)),Object.freeze({verbatimCoordinates:b,verbatimLatitude:S,verbatimLongitude:E,decimalLatitude:n,decimalLongitude:r,decimalCoordinates:`${n},${r}`,closeEnough:JO,toCoordinateFormat:YO})}else throw new Error("coordinates pattern match failed")}function jg(t){if(!isNaN(t[0]))return!1;const e=[...t];if(e.shift(),e.length%2>0)return!1;const n=/^[-+]?\d+([\.,]\d+)?$/,r=/[eastsouthnorthwest]+/i,i=e.length/2;for(let a=0;a{e.decimalLatitude?t.push(e):t.push({...e,...t5})}),[...t,...n5,...r5]}const o5=i5();K1.formats=o5.map(t=>t.verbatimCoordinates);const s5=K1;function IS(t,e,n){const r=t.slice();return r[81]=e[n],r[83]=n,r}function CS(t){let e,n;return e=new jO({}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function TS(t){let e,n,r,i,a;return n=new $O({}),{c(){e=de("button"),We(n.$$.fragment),Ie(e,"type","button"),Ie(e,"title",t[9]),Ie(e,"class","svelte-zh3kmv"),bl(e,"active",t[0])},m(c,l){be(c,e,l),je(n,e,null),r=!0,i||(a=Lt(e,"click",t[67]),i=!0)},p(c,l){(!r||l[0]&512)&&Ie(e,"title",c[9]),(!r||l[0]&1)&&bl(e,"active",c[0])},i(c){r||(pe(n.$$.fragment,c),r=!0)},o(c){xe(n.$$.fragment,c),r=!1},d(c){c&&ve(e),qe(n),i=!1,a()}}}function a5(t){let e,n=[],r=new Map,i,a,c,l=vs(t[14]);const m=b=>b[81].id+(b[81].address?","+b[81].address:"");for(let b=0;b{re=null}),$n()),(!j||lt[0]&2)&&bl(b,"displayable",Le[1]!==""),Le[5]===!0?ye?(ye.p(Le,lt),lt[0]&32&&pe(ye,1)):(ye=TS(Le),ye.c(),pe(ye,1),ye.m(r,D)):ye&&(qn(),xe(ye,1,1,()=>{ye=null}),$n()),Ae&&Ae.p&&(!j||lt[1]&134217728)&&hi(Ae,ae,Le,Le[58],j?ci(ae,Le[58],lt,null):fi(Le[58]),null);let Ke=z;z=Qe(Le),z===Ke?~z&&Ee[z].p(Le,lt):(G&&(qn(),xe(Ee[Ke],1,1,()=>{Ee[Ke]=null}),$n()),~z?(G=Ee[z],G?G.p(Le,lt):(G=Ee[z]=me[z](Le),G.c()),pe(G,1),G.m(n,null)):G=null),(!j||lt[0]&4&&F!==(F=a_(Le[2])+" svelte-zh3kmv"))&&Ie(n,"class",F),(!j||lt[0]&22)&&bl(n,"can-collapse",Le[4]&&Le[1]==="")},i(Le){j||(pe(he),pe(a.$$.fragment,Le),pe(E.$$.fragment,Le),pe(re),pe(ye),pe(Ae,Le),pe(G),j=!0)},o(Le){xe(he),xe(a.$$.fragment,Le),xe(E.$$.fragment,Le),xe(re),xe(ye),xe(Ae,Le),xe(G),j=!1},d(Le){Le&&(ve(e),ve(n)),qe(a),t[61](null),qe(E),re&&re.d(),ye&&ye.d(),Ae&&Ae.d(Le),~z&&Ee[z].d(),Z=!1,ti(J)}}}function f5(t,e,n){let r,{$$slots:i={},$$scope:a}=e,{class:c=void 0}=e,{apiKey:l}=e,{bbox:m=void 0}=e,{clearButtonTitle:b="clear"}=e,{clearOnBlur:S=!1}=e,{collapsed:E=!1}=e,{country:T=void 0}=e,{debounceSearch:A=200}=e,{enableReverse:D=!1}=e,{errorMessage:O="Something went wrong…"}=e,{filter:z=()=>!0}=e,{flyTo:G=!0}=e,{fuzzyMatch:F=!0}=e,{language:j=void 0}=e,{limit:Z=void 0}=e,{mapController:J=void 0}=e,{minLength:he=2}=e,{noResultsMessage:re="Oops! Looks like you're trying to predict something that's not quite right. We can't seem to find what you're looking for. Maybe try double-checking your spelling or try a different search term. Keep on typing - we'll do our best to get you where you need to go!"}=e,{placeholder:ye="Search"}=e,{proximity:ae=[{type:"server-geolocation"}]}=e,{reverseActive:Ae=D==="always"}=e,{reverseButtonTitle:me="toggle reverse geocoding"}=e,{searchValue:Ee=""}=e,{showFullGeometry:Qe=!0}=e,{showPlaceType:Le="ifNeeded"}=e,{showResultsWhileTyping:lt=!0}=e,{selectFirst:Ke=!0}=e,{flyToSelected:it=!1}=e,{markerOnSelected:Rt=!0}=e,{types:Gt=void 0}=e,{excludeTypes:Tt=!1}=e,{zoom:zt=16}=e,{maxZoom:Ft=18}=e,{apiUrl:Ht="https://api.maptiler.com/geocoding"}=e,{fetchParameters:Dn={}}=e,{iconsBaseUrl:Sn="https://cdn.maptiler.com/maptiler-geocoding-control/v1.2.2/icons/"}=e,{adjustUrlQuery:mn=Q=>{}}=e;function or(){Be.focus()}function sr(){Be.blur()}function Yn(Q,Te=!0){n(1,Ee=Q),Te?(n(15,wn=-1),Rl()):(ni(),setTimeout(()=>{Be.focus(),Be.select()}))}function rt(){n(14,Ze=void 0),n(55,It=void 0),n(15,wn=-1)}function Jt(){n(54,Ne=[]),n(55,It=void 0)}let Xt=!1,Ze,Ne,It,Sr="",Be,wn=-1,pi,gn=[],ar,Fo,Is,Ys;const tl=new Set,Oi=ic();ys(()=>{J&&(J.setEventHandler(void 0),J.indicateReverse(!1),J.setSelectedMarker(-1),J.setMarkers(void 0,void 0))});function Rl(Q){if(Fo&&(clearTimeout(Fo),Fo=void 0),wn>-1&&Ze)n(55,It=Ze[wn]),n(1,Ee=It.place_type[0]==="reverse"?It.place_name:It.place_name.replace(/,.*/,"")),n(18,pi=void 0),n(54,Ne=void 0),n(15,wn=-1);else if(Ee){const Te=Q||!Cs(Ee);st(Ee,{exact:!0}).then(()=>{n(54,Ne=Ze),n(55,It=void 0),Te&&as()}).catch(_e=>n(18,pi=_e))}}function Cs(Q){try{return s5(Q,6)}catch{return!1}}async function st(Q,{byId:Te=!1,exact:_e=!1}={}){n(18,pi=void 0),ar==null||ar.abort();const ke=new AbortController;n(19,ar=ke);try{const Ve=Cs(Q),He=new URLSearchParams;if(j!==void 0&&He.set("language",Array.isArray(j)?j.join(","):j??""),Gt&&He.set("types",Gt.join(",")),Tt&&He.set("excludeTypes",String(Tt)),m&&He.set("bbox",m.map(en=>en.toFixed(6)).join(",")),T&&He.set("country",Array.isArray(T)?T.join(","):T),!Te&&!Ve){const en=await XO(J,ae,ke);en&&He.set("proximity",en),(_e||!lt)&&He.set("autocomplete","false"),He.set("fuzzyMatch",String(F))}Z!==void 0&&(!Ve||(Gt==null?void 0:Gt.length)===1)&&He.set("limit",String(Z)),He.set("key",l),mn(He);const Ye=Ht+"/"+encodeURIComponent(Ve?Ve.decimalLongitude+","+Ve.decimalLatitude:Q)+".json?"+He.toString();if(Ye===Sr){Te?(n(14,Ze=void 0),n(55,It=gn[0])):n(14,Ze=gn);return}Sr=Ye;const At=await fetch(Ye,{signal:ke.signal,...Dn});if(!At.ok)throw new Error(await At.text());const Nt=await At.json();Oi("response",{url:Ye,featureCollection:Nt}),Te?(n(14,Ze=void 0),n(55,It=Nt.features[0]),gn=[It]):(n(14,Ze=Nt.features.filter(z)),Ve&&Ze.unshift({type:"Feature",properties:{},id:"reverse_"+Ve.decimalLongitude+"_"+Ve.decimalLatitude,text:Ve.decimalLatitude+", "+Ve.decimalLongitude,place_name:Ve.decimalLatitude+", "+Ve.decimalLongitude,place_type:["reverse"],center:[Ve.decimalLongitude,Ve.decimalLatitude],bbox:[Ve.decimalLongitude,Ve.decimalLatitude,Ve.decimalLongitude,Ve.decimalLatitude],geometry:{type:"Point",coordinates:[Ve.decimalLongitude,Ve.decimalLatitude]}}),gn=Ze,Ve&&Be.focus())}catch(Ve){if(Ve&&typeof Ve=="object"&&"name"in Ve&&Ve.name==="AbortError")return;throw Ve}finally{ke===ar&&n(19,ar=void 0)}}function as(){var _e;if(!(Ne!=null&&Ne.length)||!G)return;const Q=[180,90,-180,-90],Te=!Ne.some(ke=>!ke.matching_text);for(const ke of Ne)if(Te||!ke.matching_text)for(const Ve of[0,1,2,3])Q[Ve]=Math[Ve<2?"min":"max"](Q[Ve],((_e=ke.bbox)==null?void 0:_e[Ve])??ke.center[Ve%2]);J&&Ne.length>0&&(It&&Q[0]===Q[2]&&Q[1]===Q[3]?J.flyTo(It.center,zt):J.fitBounds(yS(Q),50,Ft))}function so(Q){n(0,Ae=D==="always"),n(14,Ze=void 0),n(55,It=void 0),n(15,wn=-1),Yn(Q[1].toFixed(6)+", "+HO(Q[0],[-180,180],!0).toFixed(6),!1)}function Nl(Q){if(!Ze)return;let Te=Q.key==="ArrowDown"?1:Q.key==="ArrowUp"?-1:0;Te&&(wn===(Ke?0:-1)&&Te===-1&&n(15,wn=Ze.length),n(15,wn+=Te),wn>=Ze.length&&n(15,wn=-1),wn<0&&Ke&&n(15,wn=0),Q.preventDefault())}function ni(Q=!0){if(n(18,pi=void 0),lt){if(Fo&&clearTimeout(Fo),Ee.length{st(Te).catch(_e=>n(18,pi=_e))},Q?A:0)}else n(14,Ze=void 0),n(18,pi=void 0)}function ft(Q){n(55,It=Q),n(1,Ee=Q.place_name),n(15,wn=-1)}const un=()=>Be.focus();function an(Q){Vi[Q?"unshift":"push"](()=>{Be=Q,n(17,Be)})}function Ur(){Ee=this.value,n(1,Ee),n(13,Xt),n(27,S)}const ls=()=>n(13,Xt=!0),sn=()=>n(13,Xt=!1),Ma=()=>ni(),Wr=()=>{n(1,Ee=""),Be.focus()},ue=()=>n(0,Ae=!Ae),q=()=>n(18,pi=void 0),W=Q=>n(15,wn=Q),K=Q=>ft(Q),ne=()=>{Ke||n(15,wn=-1)},Ce=()=>{};return t.$$set=Q=>{"class"in Q&&n(2,c=Q.class),"apiKey"in Q&&n(25,l=Q.apiKey),"bbox"in Q&&n(26,m=Q.bbox),"clearButtonTitle"in Q&&n(3,b=Q.clearButtonTitle),"clearOnBlur"in Q&&n(27,S=Q.clearOnBlur),"collapsed"in Q&&n(4,E=Q.collapsed),"country"in Q&&n(28,T=Q.country),"debounceSearch"in Q&&n(29,A=Q.debounceSearch),"enableReverse"in Q&&n(5,D=Q.enableReverse),"errorMessage"in Q&&n(6,O=Q.errorMessage),"filter"in Q&&n(30,z=Q.filter),"flyTo"in Q&&n(31,G=Q.flyTo),"fuzzyMatch"in Q&&n(32,F=Q.fuzzyMatch),"language"in Q&&n(33,j=Q.language),"limit"in Q&&n(34,Z=Q.limit),"mapController"in Q&&n(35,J=Q.mapController),"minLength"in Q&&n(36,he=Q.minLength),"noResultsMessage"in Q&&n(7,re=Q.noResultsMessage),"placeholder"in Q&&n(8,ye=Q.placeholder),"proximity"in Q&&n(37,ae=Q.proximity),"reverseActive"in Q&&n(0,Ae=Q.reverseActive),"reverseButtonTitle"in Q&&n(9,me=Q.reverseButtonTitle),"searchValue"in Q&&n(1,Ee=Q.searchValue),"showFullGeometry"in Q&&n(38,Qe=Q.showFullGeometry),"showPlaceType"in Q&&n(10,Le=Q.showPlaceType),"showResultsWhileTyping"in Q&&n(39,lt=Q.showResultsWhileTyping),"selectFirst"in Q&&n(11,Ke=Q.selectFirst),"flyToSelected"in Q&&n(40,it=Q.flyToSelected),"markerOnSelected"in Q&&n(41,Rt=Q.markerOnSelected),"types"in Q&&n(42,Gt=Q.types),"excludeTypes"in Q&&n(43,Tt=Q.excludeTypes),"zoom"in Q&&n(44,zt=Q.zoom),"maxZoom"in Q&&n(45,Ft=Q.maxZoom),"apiUrl"in Q&&n(46,Ht=Q.apiUrl),"fetchParameters"in Q&&n(47,Dn=Q.fetchParameters),"iconsBaseUrl"in Q&&n(12,Sn=Q.iconsBaseUrl),"adjustUrlQuery"in Q&&n(48,mn=Q.adjustUrlQuery),"$$scope"in Q&&n(58,a=Q.$$scope)},t.$$.update=()=>{if(t.$$.dirty[0]&134225920&&setTimeout(()=>{n(16,Is=Xt),S&&!Xt&&n(1,Ee="")}),t.$$.dirty[0]&16386|t.$$.dirty[1]&32&&Ee.lengthn(18,pi=Q)),t.$$.dirty[1]&50356241&&(J&&It&&It.id!==Ys&&G&&(!It.bbox||It.bbox[0]===It.bbox[2]&&It.bbox[1]===It.bbox[3]?J.flyTo(It.center,It.id.startsWith("poi.")||It.id.startsWith("address.")?Ft:zt):J.fitBounds(yS(It.bbox),50,Ft),n(14,Ze=void 0),n(54,Ne=void 0),n(15,wn=-1)),n(56,Ys=It==null?void 0:It.id)),t.$$.dirty[0]&18432&&Ke&&Ze!=null&&Ze.length&&n(15,wn=0),t.$$.dirty[0]&2050&&(Ke||n(15,wn=-1)),t.$$.dirty[0]&16384|t.$$.dirty[1]&8388608&&Ne!==Ze&&n(54,Ne=void 0),t.$$.dirty[0]&81921|t.$$.dirty[1]&8388624&&J&&J.setEventHandler(Q=>{switch(Q.type){case"mapClick":Ae&&so(Q.coordinates);break;case"markerClick":{const Te=Ze==null?void 0:Ze.find(_e=>_e.id===Q.id);Te&&ft(Te)}break;case"markerMouseEnter":Ne&&n(15,wn=Is?(Ze==null?void 0:Ze.findIndex(Te=>Te.id===Q.id))??-1:-1);break;case"markerMouseLeave":Ne&&n(15,wn=-1);break}}),t.$$.dirty[0]&49152&&n(57,r=Ze==null?void 0:Ze[wn]),t.$$.dirty[1]&67133969&&J&&r&&G&&it&&J.flyTo(r.center,r.id.startsWith("poi.")||r.id.startsWith("address.")?Ft:zt),t.$$.dirty[1]&1040&&(Rt||J==null||J.setMarkers(void 0,void 0)),t.$$.dirty[1]&75498512&&J&&Rt&&!Ne&&(J.setMarkers(r?[r]:void 0,void 0),J.setSelectedMarker(r?0:-1)),t.$$.dirty[1]&25165840&&J&&J.setMarkers(Ne,It),t.$$.dirty[0]&32768|t.$$.dirty[1]&8388624&&Ne&&J&&J.setSelectedMarker(wn),t.$$.dirty[0]&2|t.$$.dirty[1]&16&&J){const Q=Cs(Ee);J.setReverseMarker(Q?[Q.decimalLongitude,Q.decimalLatitude]:void 0)}t.$$.dirty[1]&67108864&&Oi("select",r),t.$$.dirty[1]&16777216&&Oi("pick",It),t.$$.dirty[0]&81920&&Oi("optionsVisibilityChange",Is&&!!Ze),t.$$.dirty[0]&16384&&Oi("featuresListed",Ze),t.$$.dirty[1]&8388608&&Oi("featuresMarked",Ne),t.$$.dirty[0]&1&&Oi("reverseToggle",Ae),t.$$.dirty[0]&2&&Oi("queryChange",Ee),t.$$.dirty[0]&1|t.$$.dirty[1]&16&&J&&J.indicateReverse(Ae)},[Ae,Ee,c,b,E,D,O,re,ye,me,Le,Ke,Sn,Xt,Ze,wn,Is,Be,pi,ar,tl,Rl,Nl,ni,ft,l,m,S,T,A,z,G,F,j,Z,J,he,ae,Qe,lt,it,Rt,Gt,Tt,zt,Ft,Ht,Dn,mn,or,sr,Yn,rt,Jt,Ne,It,Ys,r,a,i,un,an,Ur,ls,sn,Ma,Wr,ue,q,W,K,ne,Ce]}class p5 extends nn{constructor(e){super(),tn(this,e,f5,h5,Zt,{class:2,apiKey:25,bbox:26,clearButtonTitle:3,clearOnBlur:27,collapsed:4,country:28,debounceSearch:29,enableReverse:5,errorMessage:6,filter:30,flyTo:31,fuzzyMatch:32,language:33,limit:34,mapController:35,minLength:36,noResultsMessage:7,placeholder:8,proximity:37,reverseActive:0,reverseButtonTitle:9,searchValue:1,showFullGeometry:38,showPlaceType:10,showResultsWhileTyping:39,selectFirst:11,flyToSelected:40,markerOnSelected:41,types:42,excludeTypes:43,zoom:44,maxZoom:45,apiUrl:46,fetchParameters:47,iconsBaseUrl:12,adjustUrlQuery:48,focus:49,blur:50,setQuery:51,clearList:52,clearMap:53},null,[-1,-1,-1])}get focus(){return this.$$.ctx[49]}get blur(){return this.$$.ctx[50]}get setQuery(){return this.$$.ctx[51]}get clearList(){return this.$$.ctx[52]}get clearMap(){return this.$$.ctx[53]}}function PS(t){let e,n,r;return n=new p5({props:{mapController:t[1],apiKey:t[0]}}),{c(){e=de("div"),We(n.$$.fragment),Ie(e,"class","svelte-ixhnie")},m(i,a){be(i,e,a),je(n,e,null),r=!0},p(i,a){const c={};a&2&&(c.mapController=i[1]),a&1&&(c.apiKey=i[0]),n.$set(c)},i(i){r||(pe(n.$$.fragment,i),r=!0)},o(i){xe(n.$$.fragment,i),r=!1},d(i){i&&ve(e),qe(n)}}}function d5(t){let e,n,r=t[1]&&PS(t);return{c(){r&&r.c(),e=zo()},m(i,a){r&&r.m(i,a),be(i,e,a),n=!0},p(i,[a]){i[1]?r?(r.p(i,a),a&2&&pe(r,1)):(r=PS(i),r.c(),pe(r,1),r.m(e.parentNode,e)):r&&(qn(),xe(r,1,1,()=>{r=null}),$n())},i(i){n||(pe(r),n=!0)},o(i){xe(r),n=!1},d(i){i&&ve(e),r&&r.d(i)}}}function m5(t,e,n){let r,{apiKey:i}=e,{map:a}=e;return t.$$set=c=>{"apiKey"in c&&n(0,i=c.apiKey),"map"in c&&n(2,a=c.map)},t.$$.update=()=>{t.$$.dirty&4&&n(1,r=a?LO(a,Fs):null)},[i,r,a]}class g5 extends nn{constructor(e){super(),tn(this,e,m5,d5,Zt,{apiKey:0,map:2})}}const _5=["==",["geometry-type"],"Polygon"],y5=["==",["geometry-type"],"LineString"],v5=["==",["geometry-type"],"Point"];function kd(t,e,n){let r=["match",t];for(let[i,a]of Object.entries(e))r.push(i),r.push(a);return r.push(n),r}function b5(t){let e,n,r,i,a,c,l,m,b;return{c(){e=de("label"),n=dt(`Basemap: + `),r=de("select"),i=de("option"),i.textContent="MapTiler Dataviz",a=de("option"),a.textContent="MapTiler Streets",c=de("option"),c.textContent="MapTiler Satellite",l=de("option"),l.textContent="OS Open Zoomstack",i.__value="dataviz",Jo(i,i.__value),a.__value="streets",Jo(a,a.__value),c.__value="hybrid",Jo(c,c.__value),l.__value="uk-openzoomstack-light",Jo(l,l.__value),t[0]===void 0&&qd(()=>t[1].call(r))},m(S,E){be(S,e,E),se(e,n),se(e,r),se(r,i),se(r,a),se(r,c),se(r,l),l_(r,t[0],!0),m||(b=Lt(r,"change",t[1]),m=!0)},p(S,[E]){E&1&&l_(r,S[0])},i:Mt,o:Mt,d(S){S&&ve(e),m=!1,b()}}}function x5(t,e,n){let r;St(t,fv,a=>n(0,r=a));function i(){r=xE(this),fv.set(r)}return[r,i]}class w5 extends nn{constructor(e){super(),tn(this,e,x5,b5,Zt,{})}}let s_=Gn(!0);function S5(t){let e,n;return e=new oc({props:{paint:{"fill-color":"black","fill-opacity":0},layout:{visibility:t[0]?"none":"visible"}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&1&&(a.layout={visibility:r[0]?"none":"visible"}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function E5(t){let e,n;return e=new Qo({props:{data:t[1],$$slots:{default:[S5]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,[i]){const a={};i&5&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function I5(t,e,n){let r;return St(t,s_,a=>n(0,r=a)),[r,{type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]]}}]}class C5 extends nn{constructor(e){super(),tn(this,e,I5,E5,Zt,{})}}const T5=t=>({}),MS=t=>({}),L5=t=>({}),AS=t=>({}),P5=t=>({}),kS=t=>({});function M5(t){let e,n,r,i,a,c;const l=t[1].top,m=ui(l,t,t[0],kS),b=t[1].left,S=ui(b,t,t[0],AS),E=t[1].main,T=ui(E,t,t[0],MS);return{c(){e=de("div"),m&&m.c(),n=$e(),r=de("div"),S&&S.c(),i=$e(),a=de("div"),T&&T.c(),Ie(e,"class","top svelte-3nmiww"),Ie(r,"class","left svelte-3nmiww"),Ie(a,"class","main svelte-3nmiww")},m(A,D){be(A,e,D),m&&m.m(e,null),be(A,n,D),be(A,r,D),S&&S.m(r,null),be(A,i,D),be(A,a,D),T&&T.m(a,null),c=!0},p(A,[D]){m&&m.p&&(!c||D&1)&&hi(m,l,A,A[0],c?ci(l,A[0],D,P5):fi(A[0]),kS),S&&S.p&&(!c||D&1)&&hi(S,b,A,A[0],c?ci(b,A[0],D,L5):fi(A[0]),AS),T&&T.p&&(!c||D&1)&&hi(T,E,A,A[0],c?ci(E,A[0],D,T5):fi(A[0]),MS)},i(A){c||(pe(m,A),pe(S,A),pe(T,A),c=!0)},o(A){xe(m,A),xe(S,A),xe(T,A),c=!1},d(A){A&&(ve(e),ve(n),ve(r),ve(i),ve(a)),m&&m.d(A),S&&S.d(A),T&&T.d(A)}}}function A5(t,e,n){let{$$slots:r={},$$scope:i}=e;return t.$$set=a=>{"$$scope"in a&&n(0,i=a.$$scope)},[i,r]}class k5 extends nn{constructor(e){super(),tn(this,e,A5,M5,Zt,{})}}function D5(t){let e,n,r,i;const a=t[1].default,c=ui(a,t,t[0],null);return{c(){e=de("a"),c&&c.c(),Ie(e,"href","#")},m(l,m){be(l,e,m),c&&c.m(e,null),n=!0,r||(i=Lt(e,"click",t[2]),r=!0)},p(l,[m]){c&&c.p&&(!n||m&1)&&hi(c,a,l,l[0],n?ci(a,l[0],m,null):fi(l[0]),null)},i(l){n||(pe(c,l),n=!0)},o(l){xe(c,l),n=!1},d(l){l&&ve(e),c&&c.d(l),r=!1,i()}}}function R5(t,e,n){let{$$slots:r={},$$scope:i}=e;function a(c){ir.call(this,t,c)}return t.$$set=c=>{"$$scope"in c&&n(0,i=c.$$scope)},[i,r,a]}class dr extends nn{constructor(e){super(),tn(this,e,R5,D5,Zt,{})}}const N5=t=>({props:t&8}),DS=t=>({props:F5(t[3])});function O5(t){let e;const n=t[1].default,r=ui(n,t,t[2],DS);return{c(){r&&r.c()},m(i,a){r&&r.m(i,a),e=!0},p(i,a){r&&r.p&&(!e||a&12)&&hi(r,n,i,i[2],e?ci(n,i[2],a,N5):fi(i[2]),DS)},i(i){e||(pe(r,i),e=!0)},o(i){xe(r,i),e=!1},d(i){r&&r.d(i)}}}function z5(t){let e,n;return e=new iA({props:{openOn:t[0],popupClass:"popup",$$slots:{default:[O5,({features:r})=>({3:r}),({features:r})=>r?8:0]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,[i]){const a={};i&1&&(a.openOn=r[0]),i&12&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function F5(t){return t?t[0].properties??{}:(console.log("A Popup with null features should be impossible"),{})}function B5(t,e,n){let{$$slots:r={},$$scope:i}=e,{openOn:a="hover"}=e;return t.$$set=c=>{"openOn"in c&&n(0,a=c.openOn),"$$scope"in c&&n(2,i=c.$$scope)},[a,r,i]}class hc extends nn{constructor(e){super(),tn(this,e,B5,z5,Zt,{openOn:0})}}function V5(t,e){if(e=="dataviz")return["Road network","Path"];if(e=="streets"){let n=[];for(let r of["road","bridge","tunnel"])for(let i of["link","minor","minor_construction","motorway","motorway_construction","motorway_link","path_pedestrian","secondary_tertiary","secondary_tertiary_construction","service_track","service_track_construction","street","trunk_primary","trunk_primary_construction","trunk_primary_link"])n.push(`${r}_${i}`);return n}if(e=="hybrid")return["Path","Road","Tunnel"];if(e=="uk-openzoomstack-light")return t.getStyle().layers.filter(n=>n["source-layer"]=="roads").map(n=>n.id);throw new Error(`Unknown style ${e}`)}const{window:U5}=s1;function G5(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D,O;return A=wP(t[8][0]),{c(){e=de("button"),e.textContent="Stop StreetView",n=$e(),r=de("fieldset"),i=de("legend"),i.textContent="Source:",a=$e(),c=de("label"),l=de("input"),m=dt(` + Google Street View`),b=$e(),S=de("label"),E=de("input"),T=dt(` + Bing Streetside`),Ie(e,"class","secondary"),Ie(l,"type","radio"),l.__value="google",Jo(l,l.__value),Ie(E,"type","radio"),E.__value="bing",Jo(E,E.__value),A.p(l,E)},m(z,G){be(z,e,G),be(z,n,G),be(z,r,G),se(r,i),se(r,a),se(r,c),se(c,l),l.checked=l.__value===t[0],se(c,m),se(r,b),se(r,S),se(S,E),E.checked=E.__value===t[0],se(S,T),D||(O=[Lt(e,"click",t[3]),Lt(l,"change",t[7]),Lt(E,"change",t[9])],D=!0)},p(z,G){G&1&&(l.checked=l.__value===z[0]),G&1&&(E.checked=E.__value===z[0])},d(z){z&&(ve(e),ve(n),ve(r)),A.r(),D=!1,ti(O)}}}function j5(t){let e,n,r;return{c(){e=de("button"),e.textContent="StreetView",Ie(e,"class","secondary")},m(i,a){be(i,e,a),n||(r=Lt(e,"click",t[2]),n=!0)},p:Mt,d(i){i&&ve(e),n=!1,r()}}}function q5(t){let e,n,r;function i(l,m){return l[1]?j5:G5}let a=i(t),c=a(t);return{c(){c.c(),e=zo()},m(l,m){c.m(l,m),be(l,e,m),n||(r=Lt(U5,"keydown",t[4]),n=!0)},p(l,[m]){a===(a=i(l))&&c?c.p(l,m):(c.d(1),c=a(l),c&&(c.c(),c.m(e.parentNode,e)))},i:Mt,o:Mt,d(l){l&&ve(e),c.d(l),n=!1,r()}}}function $5(t,e,n){let r;St(t,s_,O=>n(1,r=O));let{map:i}=e,{maptilerBasemap:a}=e,c="google",l=[];function m(){Kt(s_,r=!1,r),i.on("click",S),i.getCanvas().style.cursor="crosshair";for(let O of V5(i,a))l.push([O,i.getPaintProperty(O,"line-color")]),i.setPaintProperty(O,"line-color","cyan")}function b(){Kt(s_,r=!0,r),i.off("click",S),i.getCanvas().style.cursor="inherit";for(let[O,z]of l)i.setPaintProperty(O,"line-color",z);l=[]}ys(b);function S(O){let z=O.lngLat.lng,G=O.lngLat.lat;c=="google"?window.open(`http://maps.google.com/maps?q=&layer=c&cbll=${G},${z}&cbp=11,0,0,0,0`,"_blank"):c=="bing"&&window.open(`https://www.bing.com/maps?cp=${G}~${z}&style=x`,"_blank")}function E(O){!r&&O.key=="Escape"&&(O.stopPropagation(),b())}const T=[[]];function A(){c=this.__value,n(0,c)}function D(){c=this.__value,n(0,c)}return t.$$set=O=>{"map"in O&&n(5,i=O.map),"maptilerBasemap"in O&&n(6,a=O.maptilerBasemap)},[c,r,m,b,E,i,a,A,T,D]}class W5 extends nn{constructor(e){super(),tn(this,e,$5,q5,Zt,{map:5,maptilerBasemap:6})}}function Ui(t){return{id:t,beforeId:Z5(t)}}function Z5(t){let e=Va(au);if(!e){console.warn(`getBeforeId(${t}) called before map is ready. Z-ordering may be incorrect.`);return}let n,r=!1;for(let i=RS.length-1;i>=0;i--){let a=RS[i];if(a==t){r=!0;break}e.getLayer(a)&&(n=a)}if(!r)throw new Error(`Layer ID ${t} not defined in layerZorder`);return n}const RS=["Background","neighbourhood-boundaries","Residential","debug-borders","debug-crosses","debug-filters","cells","interior-roads","compare-route","shortcuts","shortcuts-focus","Building","route-points","route-lines","route-polygons","one-ways","Road labels","animate-shortcuts","modal-filters","boundary","neighbourhood-boundary","freehand-line","edit-polygon-fill","edit-polygon-lines","edit-polygon-vertices"];function H5(t){let e;return{c(){e=dt("Back")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function X5(t){let e,n,r,i;return e=new dr({props:{$$slots:{default:[H5]},$$scope:{ctx:t}}}),e.$on("click",t[2]),{c(){We(e.$$.fragment)},m(a,c){je(e,a,c),n=!0,r||(i=Lt(window,"keydown",t[1]),r=!0)},p(a,[c]){const l={};c&8&&(l.$$scope={dirty:c,ctx:a}),e.$set(l)},i(a){n||(pe(e.$$.fragment,a),n=!0)},o(a){xe(e.$$.fragment,a),n=!1},d(a){qe(e,a),r=!1,i()}}}function Y5(t){let e=ic();function n(i){i.key=="Escape"&&(i.stopPropagation(),e("click"))}return[e,n,()=>e("click")]}class J1 extends nn{constructor(e){super(),tn(this,e,Y5,X5,Zt,{})}}function K5(t){let e,n;const r=[Ui("one-ways"),{filter:["all",["==",["get","kind"],"interior_road"],["!=",["get","direction"],"both"]]},{layout:{"icon-image":"oneway-arrow","icon-size":1,"symbol-placement":"line","symbol-spacing":50,"icon-allow-overlap":!0,"icon-rotate":["case",["==",["get","direction"],"forwards"],0,180]}},{paint:{"icon-opacity":["case",["get","direction_edited"],1,.5]}}];let i={};for(let a=0;a({}),NS=t=>({}),ez=t=>({}),OS=t=>({});function tz(t){let e,n;const r=[Ui("neighbourhood-boundary"),{paint:{"fill-color":"black","fill-opacity":.3}}];let i={};for(let a=0;a{r=null}),$n())},i(i){n||(pe(r),n=!0)},o(i){xe(r),n=!1},d(i){i&&ve(e),r&&r.d(i)}}}function rz(t){let e,n,r,i,a,c,l,m,b;e=new Qo({props:{data:FS(t[3]),$$slots:{default:[tz]},$$scope:{ctx:t}}});const S=[Ui("cells"),{filter:["==",["get","kind"],"cell"]},{paint:{"fill-color":["get","color"],"fill-opacity":.3}}];let E={};for(let z=0;zn.properties.kind=="boundary");return{type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]],e.geometry.coordinates[0]]}}}function oz(t,e,n){let r,i,a,{$$slots:c={},$$scope:l}=e,{gjInput:m}=e,{interactive:b=!0}=e,{onClickLine:S=(T,A)=>{}}=e;const E=T=>b&&S(T.detail.features[0],T.detail.event.lngLat);return t.$$set=T=>{"gjInput"in T&&n(4,m=T.gjInput),"interactive"in T&&n(0,b=T.interactive),"onClickLine"in T&&n(1,S=T.onClickLine),"$$scope"in T&&n(8,l=T.$$scope)},t.$$.update=()=>{t.$$.dirty&16&&n(3,r=n1(m)),t.$$.dirty&16&&n(5,i=Math.max(...m.features.map(T=>T.properties.kind=="interior_road"?T.properties.shortcuts:0))),t.$$.dirty&32&&n(2,a=p_(["interpolate-hcl",["linear"],["get","shortcuts"],0,"white",1,"#F19A93",i,"#A32015"],"blue"))},[b,S,a,r,m,i,c,E,l]}class by extends nn{constructor(e){super(),tn(this,e,oz,iz,Zt,{gjInput:4,interactive:0,onClickLine:1})}}const sz=t=>({}),BS=t=>({}),az=t=>({}),VS=t=>({}),lz=t=>({}),US=t=>({});function uz(t){let e,n,r,i,a,c;const l=t[4].top,m=ui(l,t,t[3],US),b=t[4].sidebar,S=ui(b,t,t[3],VS),E=t[4].map,T=ui(E,t,t[3],BS);return{c(){e=de("div"),m&&m.c(),n=$e(),r=de("div"),S&&S.c(),i=$e(),a=de("div"),T&&T.c()},m(A,D){be(A,e,D),m&&m.m(e,null),t[5](e),be(A,n,D),be(A,r,D),S&&S.m(r,null),t[6](r),be(A,i,D),be(A,a,D),T&&T.m(a,null),t[7](a),c=!0},p(A,[D]){m&&m.p&&(!c||D&8)&&hi(m,l,A,A[3],c?ci(l,A[3],D,lz):fi(A[3]),US),S&&S.p&&(!c||D&8)&&hi(S,b,A,A[3],c?ci(b,A[3],D,az):fi(A[3]),VS),T&&T.p&&(!c||D&8)&&hi(T,E,A,A[3],c?ci(E,A[3],D,sz):fi(A[3]),BS)},i(A){c||(pe(m,A),pe(S,A),pe(T,A),c=!0)},o(A){xe(m,A),xe(S,A),xe(T,A),c=!1},d(A){A&&(ve(e),ve(n),ve(r),ve(i),ve(a)),m&&m.d(A),t[5](null),S&&S.d(A),t[6](null),T&&T.d(A),t[7](null)}}}function cz(t,e,n){let r,i,a;St(t,pv,E=>n(0,r=E)),St(t,dv,E=>n(1,i=E)),St(t,mv,E=>n(2,a=E));let{$$slots:c={},$$scope:l}=e;function m(E){Vi[E?"unshift":"push"](()=>{r=E,pv.set(r)})}function b(E){Vi[E?"unshift":"push"](()=>{i=E,dv.set(i)})}function S(E){Vi[E?"unshift":"push"](()=>{a=E,mv.set(a)})}return t.$$set=E=>{"$$scope"in E&&n(3,l=E.$$scope)},[r,i,a,l,c,m,b,S]}class fc extends nn{constructor(e){super(),tn(this,e,cz,uz,Zt,{})}}function hz(t){let e;return{c(){e=dt("Choose project")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function fz(t){let e;return{c(){e=dt("Pick neighbourhood")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function pz(t){let e;return{c(){e=dt("Editing")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function dz(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D;return a=new dr({props:{$$slots:{default:[hz]},$$scope:{ctx:t}}}),a.$on("click",t[4]),m=new dr({props:{$$slots:{default:[fz]},$$scope:{ctx:t}}}),m.$on("click",t[5]),E=new dr({props:{$$slots:{default:[pz]},$$scope:{ctx:t}}}),E.$on("click",t[6]),{c(){e=de("div"),n=de("nav"),r=de("ul"),i=de("li"),We(a.$$.fragment),c=$e(),l=de("li"),We(m.$$.fragment),b=$e(),S=de("li"),We(E.$$.fragment),T=$e(),A=de("li"),A.textContent="Debug mode",Ie(n,"aria-label","breadcrumb"),Ie(e,"slot","top")},m(O,z){be(O,e,z),se(e,n),se(n,r),se(r,i),je(a,i,null),se(r,c),se(r,l),je(m,l,null),se(r,b),se(r,S),je(E,S,null),se(r,T),se(r,A),D=!0},p(O,z){const G={};z&256&&(G.$$scope={dirty:z,ctx:O}),a.$set(G);const F={};z&256&&(F.$$scope={dirty:z,ctx:O}),m.$set(F);const j={};z&256&&(j.$$scope={dirty:z,ctx:O}),E.$set(j)},i(O){D||(pe(a.$$.fragment,O),pe(m.$$.fragment,O),pe(E.$$.fragment,O),D=!0)},o(O){xe(a.$$.fragment,O),xe(m.$$.fragment,O),xe(E.$$.fragment,O),D=!1},d(O){O&&ve(e),qe(a),qe(m),qe(E)}}}function mz(t){let e,n,r;return n=new J1({}),n.$on("click",t[3]),{c(){e=de("div"),We(n.$$.fragment),Ie(e,"slot","sidebar")},m(i,a){be(i,e,a),je(n,e,null),r=!0},p:Mt,i(i){r||(pe(n.$$.fragment,i),r=!0)},o(i){xe(n.$$.fragment,i),r=!1},d(i){i&&ve(e),qe(n)}}}function gz(t){let e,n;return e=new K_({props:{properties:t[7]}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&128&&(a.properties=r[7]),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function _z(t){let e,n,r;return n=new hc({props:{openOn:"hover",$$slots:{default:[gz,({props:i})=>({7:i}),({props:i})=>i?128:0]},$$scope:{ctx:t}}}),{c(){e=de("div"),We(n.$$.fragment),Ie(e,"slot","line-popup")},m(i,a){be(i,e,a),je(n,e,null),r=!0},p(i,a){const c={};a&384&&(c.$$scope={dirty:a,ctx:i}),n.$set(c)},i(i){r||(pe(n.$$.fragment,i),r=!0)},o(i){xe(n.$$.fragment,i),r=!1},d(i){i&&ve(e),qe(n)}}}function yz(t){let e,n;return e=new K_({props:{properties:t[7]}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&128&&(a.properties=r[7]),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function vz(t){let e,n;return e=new hc({props:{openOn:"hover",$$slots:{default:[yz,({props:r})=>({7:r}),({props:r})=>r?128:0]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&384&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function bz(t){let e,n;return e=new K_({props:{properties:t[7]}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&128&&(a.properties=r[7]),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function xz(t){let e,n;return e=new hc({props:{openOn:"hover",$$slots:{default:[bz,({props:r})=>({7:r}),({props:r})=>r?128:0]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&384&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function wz(t){let e,n,r,i;const a=[Ui("debug-borders"),{filter:["==",["get","kind"],"border_intersection"]},{paint:{"circle-radius":15,"circle-color":"green"}}];let c={$$slots:{default:[vz]},$$scope:{ctx:t}};for(let b=0;b({7:r}),({props:r})=>r?128:0]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&384&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function Iz(t){let e,n;const r=[Ui("debug-filters"),{paint:{"circle-radius":15,"circle-color":"black"}}];let i={$$slots:{default:[Ez]},$$scope:{ctx:t}};for(let a=0;an(0,r=S)),St(t,An,S=>n(1,i=S)),[r,i,(S,E)=>window.open(Mr(S.properties).way,"_blank"),()=>Kt(An,i={mode:"neighbourhood"},i),()=>Kt(An,i={mode:"title"},i),()=>Kt(An,i={mode:"network"},i),()=>Kt(An,i={mode:"neighbourhood"},i)]}class Pz extends nn{constructor(e){super(),tn(this,e,Lz,Tz,Zt,{})}}function GS(t,e,n){const r=t.slice();return r[7]=e[n][0],r[8]=e[n][1],r[9]=e[n][2],r}function jS(t){let e,n,r,i,a,c,l=t[8]+"",m,b,S,E,T;function A(){return t[3](t[7])}return{c(){e=de("button"),n=de("img"),i=$e(),a=de("br"),c=$e(),m=dt(l),b=$e(),Vn(n.src,r=`/ltn//filters/${t[7]}_icon.gif`)||Ie(n,"src",r),Ie(n,"width","80"),Ie(n,"alt",t[8]),Ie(e,"class","outline"),nr(e,"width","100%"),e.disabled=S=t[0]==t[7]},m(D,O){be(D,e,O),se(e,n),se(e,i),se(e,a),se(e,c),se(e,m),se(e,b),E||(T=Lt(e,"click",A),E=!0)},p(D,O){t=D,O&1&&S!==(S=t[0]==t[7])&&(e.disabled=S)},d(D){D&&ve(e),E=!1,T()}}}function Mz(t){let e,n,r,i,a,c,l,m,b,S,E,T,A=t[1][2]+"",D,O,z,G,F,j,Z=vs(t[2]),J=[];for(let re=0;re({6:r}),({dialog:r})=>r?64:0]},$$scope:{ctx:t}}}),e.$on("close",t[5]),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,[i]){const a={};i&4163&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function kz(t,e,n){let r,i;St(t,yv,b=>n(0,i=b));let a=[["walk_cycle_only","Walking/cycling only","A physical barrier that only allows people walking, cycling, and rolling to pass. Often planters or bollards. Larger vehicles cannot enter."],["no_entry","No entry","An alternative sign to indicate vehicles are not allowed to enter the street. Only people walking, cycling, and rolling may pass through."],["bus_gate","Bus gate","A bus gate sign and traffic cameras are installed to allow buses, pedestrians, and cyclists to pass. There is no physical barrier."],["school_street","School street","A closure during school hours only. The barrier usually allows teachers and staff to access the school."]];const c=b=>Kt(yv,i=b,i),l=b=>Mr(b).close();function m(b){ir.call(this,t,b)}return t.$$.update=()=>{t.$$.dirty&1&&n(1,r=a.find(b=>b[0]==i))},[i,r,a,c,l,m]}class Dz extends nn{constructor(e){super(),tn(this,e,kz,Az,Zt,{})}}function qS(t){let e,n;return e=new Qo({props:{data:t[0],$$slots:{default:[Rz]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&1&&(a.data=r[0]),i&64&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function Rz(t){let e,n;const r=[Ui("freehand-line"),{paint:{"line-width":5,"line-color":"red"}}];let i={};for(let a=0;a{r=null}),$n())},i(i){n||(pe(r),n=!0)},o(i){xe(r),n=!1},d(i){i&&ve(e),r&&r.d(i)}}}function Oz(t,e,n){let{map:r}=e,i=null;const a=ic();r.on("dragstart",c),r.on("mousemove",l),r.on("mouseup",m),ys(()=>{r.dragPan.enable(),r.off("dragstart",c),r.off("mousemove",l),r.off("mouseup",m)});function c(){r.dragPan.disable(),n(0,i={type:"Feature",properties:{},geometry:{type:"LineString",coordinates:[]}})}function l(b){i&&(i.geometry.coordinates.push(b.lngLat.toArray()),n(0,i))}function m(){i&&(a("done",i),n(0,i=null))}return t.$$set=b=>{"map"in b&&n(1,r=b.map)},[i,r]}class zz extends nn{constructor(e){super(),tn(this,e,Oz,Nz,Zt,{map:1})}}function Fz(t){let e;const n=t[3].default,r=ui(n,t,t[5],null);return{c(){r&&r.c()},m(i,a){r&&r.m(i,a),e=!0},p(i,a){r&&r.p&&(!e||a&32)&&hi(r,n,i,i[5],e?ci(n,i[5],a,null):fi(i[5]),null)},i(i){e||(pe(r,i),e=!0)},o(i){xe(r,i),e=!1},d(i){r&&r.d(i)}}}function Bz(t){let e,n;const r=[Ui("modal-filters"),{layout:{"icon-image":["get","filter_kind"],"icon-allow-overlap":!0,"icon-size":.1}},{paint:{"icon-opacity":["case",["get","edited"],1,.5]}}];let i={$$slots:{default:[Fz]},$$scope:{ctx:t}};for(let a=0;an(1,i=b)),St(t,Bu,b=>n(2,a=b));let{$$slots:c={},$$scope:l}=e;function m(b){ir.call(this,t,b)}return t.$$set=b=>{"$$scope"in b&&n(5,l=b.$$scope)},t.$$.update=()=>{t.$$.dirty&6&&n(0,r=a>0?JSON.parse(i.renderModalFilters()):null)},[r,i,a,c,m,l]}class xy extends nn{constructor(e){super(),tn(this,e,Uz,Vz,Zt,{})}}var Gz=Object.defineProperty,hr=(t,e)=>Gz(t,"name",{value:e,configurable:!0}),jz=class{constructor(e){this.direction=!1,this.compareProperties=!0;var n,r,i;this.precision=10**-((n=e==null?void 0:e.precision)!=null?n:17),this.direction=(r=e==null?void 0:e.direction)!=null?r:!1,this.compareProperties=(i=e==null?void 0:e.compareProperties)!=null?i:!0}compare(e,n){if(e.type!==n.type||!Dd(e,n))return!1;switch(e.type){case"Point":return this.compareCoord(e.coordinates,n.coordinates);case"LineString":return this.compareLine(e.coordinates,n.coordinates);case"Polygon":return this.comparePolygon(e,n);case"GeometryCollection":return this.compareGeometryCollection(e,n);case"Feature":return this.compareFeature(e,n);case"FeatureCollection":return this.compareFeatureCollection(e,n);default:if(e.type.startsWith("Multi")){const r=r1(e),i=r1(n);return r.every(a=>i.some(c=>this.compare(a,c)))}}return!1}compareCoord(e,n){return e.length===n.length&&e.every((r,i)=>Math.abs(r-n[i])=0&&(r=[].concat(e.slice(i,e.length),e.slice(1,i+1))),r}comparePath(e,n){return e.every((r,i)=>this.compareCoord(r,n[i]))}comparePolygon(e,n){if(this.compareLine(e.coordinates[0],n.coordinates[0],1,!0)){const r=e.coordinates.slice(1,e.coordinates.length),i=n.coordinates.slice(1,n.coordinates.length);return r.every(a=>i.some(c=>this.compareLine(a,c,1,!0)))}return!1}compareGeometryCollection(e,n){return Dd(e.geometries,n.geometries)&&this.compareBBox(e,n)&&e.geometries.every((r,i)=>this.compare(r,n.geometries[i]))}compareFeature(e,n){return e.id===n.id&&(this.compareProperties?BI(e.properties,n.properties):!0)&&this.compareBBox(e,n)&&this.compare(e.geometry,n.geometry)}compareFeatureCollection(e,n){return Dd(e.features,n.features)&&this.compareBBox(e,n)&&e.features.every((r,i)=>this.compare(r,n.features[i]))}compareBBox(e,n){return!e.bbox&&!n.bbox||(e.bbox&&n.bbox?this.compareCoord(e.bbox,n.bbox):!1)}};hr(jz,"GeojsonEquality");function Dd(t,e){return t.coordinates?t.coordinates.length===e.coordinates.length:t.length===e.length}hr(Dd,"sameLength");function r1(t){return t.coordinates.map(e=>({type:t.type.replace("Multi",""),coordinates:e}))}hr(r1,"explode");var Os=63710088e-1,KC={centimeters:Os*100,centimetres:Os*100,degrees:360/(2*Math.PI),feet:Os*3.28084,inches:Os*39.37,kilometers:Os/1e3,kilometres:Os/1e3,meters:Os,metres:Os,miles:Os/1609.344,millimeters:Os*1e3,millimetres:Os*1e3,nauticalmiles:Os/1852,radians:1,yards:Os*1.0936},$S={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,nauticalmiles:29155334959812285e-23,millimeters:1e6,millimetres:1e6,yards:1.195990046};function pc(t,e,n={}){const r={type:"Feature"};return(n.id===0||n.id)&&(r.id=n.id),n.bbox&&(r.bbox=n.bbox),r.properties=e||{},r.geometry=t,r}hr(pc,"feature");function qz(t,e,n={}){switch(t){case"Point":return Jf(e).geometry;case"LineString":return eb(e).geometry;case"Polygon":return Q1(e).geometry;case"MultiPoint":return QC(e).geometry;case"MultiLineString":return JC(e).geometry;case"MultiPolygon":return eT(e).geometry;default:throw new Error(t+" is invalid")}}hr(qz,"geometry");function Jf(t,e,n={}){if(!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!Qf(t[0])||!Qf(t[1]))throw new Error("coordinates must contain numbers");return pc({type:"Point",coordinates:t},e,n)}hr(Jf,"point");function $z(t,e,n={}){return wy(t.map(r=>Jf(r,e)),n)}hr($z,"points");function Q1(t,e,n={}){for(const i of t){if(i.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(i[i.length-1].length!==i[0].length)throw new Error("First and last Position are not equivalent.");for(let a=0;aQ1(r,e)),n)}hr(Wz,"polygons");function eb(t,e,n={}){if(t.length<2)throw new Error("coordinates must be an array of two or more positions");return pc({type:"LineString",coordinates:t},e,n)}hr(eb,"lineString");function Zz(t,e,n={}){return wy(t.map(r=>eb(r,e)),n)}hr(Zz,"lineStrings");function wy(t,e={}){const n={type:"FeatureCollection"};return e.id&&(n.id=e.id),e.bbox&&(n.bbox=e.bbox),n.features=t,n}hr(wy,"featureCollection");function JC(t,e,n={}){return pc({type:"MultiLineString",coordinates:t},e,n)}hr(JC,"multiLineString");function QC(t,e,n={}){return pc({type:"MultiPoint",coordinates:t},e,n)}hr(QC,"multiPoint");function eT(t,e,n={}){return pc({type:"MultiPolygon",coordinates:t},e,n)}hr(eT,"multiPolygon");function Hz(t,e,n={}){return pc({type:"GeometryCollection",geometries:t},e,n)}hr(Hz,"geometryCollection");function Xz(t,e=0){if(e&&!(e>=0))throw new Error("precision must be a positive number");const n=Math.pow(10,e||0);return Math.round(t*n)/n}hr(Xz,"round");function tb(t,e="kilometers"){const n=KC[e];if(!n)throw new Error(e+" units is invalid");return t*n}hr(tb,"radiansToLength");function Sy(t,e="kilometers"){const n=KC[e];if(!n)throw new Error(e+" units is invalid");return t/n}hr(Sy,"lengthToRadians");function Yz(t,e){return cm(Sy(t,e))}hr(Yz,"lengthToDegrees");function Kz(t){let e=t%360;return e<0&&(e+=360),e}hr(Kz,"bearingToAzimuth");function cm(t){return t%(2*Math.PI)*180/Math.PI}hr(cm,"radiansToDegrees");function ca(t){return t%360*Math.PI/180}hr(ca,"degreesToRadians");function Jz(t,e="kilometers",n="kilometers"){if(!(t>=0))throw new Error("length must be a positive number");return tb(Sy(t,e),n)}hr(Jz,"convertLength");function Qz(t,e="meters",n="kilometers"){if(!(t>=0))throw new Error("area must be a positive number");const r=$S[e];if(!r)throw new Error("invalid original units");const i=$S[n];if(!i)throw new Error("invalid final units");return t/r*i}hr(Qz,"convertArea");function Qf(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}hr(Qf,"isNumber");function eF(t){return t!==null&&typeof t=="object"&&!Array.isArray(t)}hr(eF,"isObject");function tF(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(t.length!==4&&t.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach(e=>{if(!Qf(e))throw new Error("bbox must only contain numbers")})}hr(tF,"validateBBox");function nF(t){if(!t)throw new Error("id is required");if(["string","number"].indexOf(typeof t)===-1)throw new Error("id must be a number or a string")}hr(nF,"validateId");var rF=Object.defineProperty,dc=(t,e)=>rF(t,"name",{value:e,configurable:!0});function ep(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return[...t.geometry.coordinates];if(t.type==="Point")return[...t.coordinates]}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return[...t];throw new Error("coord must be GeoJSON Point or an Array of numbers")}dc(ep,"getCoord");function iF(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}dc(iF,"getCoords");function tT(t){if(t.length>1&&Qf(t[0])&&Qf(t[1]))return!0;if(Array.isArray(t[0])&&t[0].length)return tT(t[0]);throw new Error("coordinates must only contain numbers")}dc(tT,"containsNumber");function oF(t,e,n){if(!e||!n)throw new Error("type and name required");if(!t||t.type!==e)throw new Error("Invalid input to "+n+": must be a "+e+", given "+t.type)}dc(oF,"geojsonType");function sF(t,e,n){if(!t)throw new Error("No feature passed");if(!n)throw new Error(".featureOf() requires a name");if(!t||t.type!=="Feature"||!t.geometry)throw new Error("Invalid input to "+n+", Feature with geometry required");if(!t.geometry||t.geometry.type!==e)throw new Error("Invalid input to "+n+": must be a "+e+", given "+t.geometry.type)}dc(sF,"featureOf");function aF(t,e,n){if(!t)throw new Error("No featureCollection passed");if(!n)throw new Error(".collectionOf() requires a name");if(!t||t.type!=="FeatureCollection")throw new Error("Invalid input to "+n+", FeatureCollection required");for(const r of t.features){if(!r||r.type!=="Feature"||!r.geometry)throw new Error("Invalid input to "+n+", Feature with geometry required");if(!r.geometry||r.geometry.type!==e)throw new Error("Invalid input to "+n+": must be a "+e+", given "+r.geometry.type)}}dc(aF,"collectionOf");function nT(t){return t.type==="Feature"?t.geometry:t}dc(nT,"getGeom");function lF(t,e){return t.type==="FeatureCollection"?"FeatureCollection":t.type==="GeometryCollection"?"GeometryCollection":t.type==="Feature"&&t.geometry!==null?t.geometry.type:t.type}dc(lF,"getType");var uF=Object.defineProperty,rT=(t,e)=>uF(t,"name",{value:e,configurable:!0});function nb(t,e,n={}){if(n.final===!0)return iT(t,e);const r=ep(t),i=ep(e),a=ca(r[0]),c=ca(i[0]),l=ca(r[1]),m=ca(i[1]),b=Math.sin(c-a)*Math.cos(m),S=Math.cos(l)*Math.sin(m)-Math.sin(l)*Math.cos(m)*Math.cos(c-a);return cm(Math.atan2(b,S))}rT(nb,"bearing");function iT(t,e){let n=nb(e,t);return n=(n+180)%360,n}rT(iT,"calculateFinalBearing");var cF=Object.defineProperty,hF=(t,e)=>cF(t,"name",{value:e,configurable:!0});function oT(t,e,n,r={}){const i=ep(t),a=ca(i[0]),c=ca(i[1]),l=ca(n),m=Sy(e,r.units),b=Math.asin(Math.sin(c)*Math.cos(m)+Math.cos(c)*Math.sin(m)*Math.cos(l)),S=a+Math.atan2(Math.sin(l)*Math.sin(m)*Math.cos(c),Math.cos(m)-Math.sin(c)*Math.sin(b)),E=cm(S),T=cm(b);return Jf([E,T],r.properties)}hF(oT,"destination");var fF=Object.defineProperty,pF=(t,e)=>fF(t,"name",{value:e,configurable:!0});function sT(t,e,n={}){var r=ep(t),i=ep(e),a=ca(i[1]-r[1]),c=ca(i[0]-r[0]),l=ca(r[1]),m=ca(i[1]),b=Math.pow(Math.sin(a/2),2)+Math.pow(Math.sin(c/2),2)*Math.cos(l)*Math.cos(m);return tb(2*Math.atan2(Math.sqrt(b),Math.sqrt(1-b)),n.units)}pF(sT,"distance");var dF=Object.defineProperty,mF=(t,e)=>dF(t,"name",{value:e,configurable:!0});function aT(t,e,n={}){const i=nT(t).coordinates;let a=0;for(let c=0;c=a&&c===i.length-1);c++)if(a>=e){const l=e-a;if(l){const m=nb(i[c],i[c-1])-180;return oT(i[c],l,m,n)}else return Jf(i[c])}else a+=sT(i[c],i[c+1],n);return Jf(i[i.length-1])}mF(aT,"along");var gF=aT;function _F(t){let e,n;const r=[Ui("animate-shortcuts"),{paint:{"circle-radius":10,"circle-color":"purple","circle-stroke-color":"black","circle-stroke-width":1}}];let i={};for(let a=0;aclearInterval(l));function m(){return r.features.map(A=>1/A.properties.directness).reduce((A,D)=>A+D,0)}function b(){return r.features.length==0?[]:Array.from({length:vF},S)}function S(){let A=Math.random()*i,D=0;for(let[O,z]of r.features.entries())if(D+=1/z.properties.directness,AgF(r.features[A],D,{units:"kilometers"}))}}function T(){for(let[A,D]of a.entries())D.distance+=xF,D.distance>=r.features[D.idx].properties.length_meters/1e3&&(a[A]=S());n(0,c=E())}return t.$$set=A=>{"paths"in A&&n(1,r=A.paths)},t.$$.update=()=>{t.$$.dirty&2&&r&&(i=m(),a=b())},[c,r]}class SF extends nn{constructor(e){super(),tn(this,e,wF,yF,Zt,{paths:1})}}function EF(t){let e;return{c(){e=dt("Choose project")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function IF(t){let e;return{c(){e=dt("Pick neighbourhood")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function CF(t){let e;return{c(){e=dt("View shortcuts")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function TF(t){let e;return{c(){e=dt("Route")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function LF(t){let e;return{c(){e=dt("Change this boundary")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function PF(t){let e;return{c(){e=dt("Debug")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function MF(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D,O,z,G,F,j,Z,J,he,re,ye,ae;return a=new dr({props:{$$slots:{default:[EF]},$$scope:{ctx:t}}}),a.$on("click",t[25]),m=new dr({props:{$$slots:{default:[IF]},$$scope:{ctx:t}}}),m.$on("click",t[26]),O=new dr({props:{$$slots:{default:[CF]},$$scope:{ctx:t}}}),O.$on("click",t[27]),F=new dr({props:{$$slots:{default:[TF]},$$scope:{ctx:t}}}),F.$on("click",t[28]),J=new dr({props:{$$slots:{default:[LF]},$$scope:{ctx:t}}}),J.$on("click",t[29]),ye=new dr({props:{$$slots:{default:[PF]},$$scope:{ctx:t}}}),ye.$on("click",t[30]),{c(){e=de("div"),n=de("nav"),r=de("ul"),i=de("li"),We(a.$$.fragment),c=$e(),l=de("li"),We(m.$$.fragment),b=$e(),S=de("li"),S.textContent="Editing",E=$e(),T=de("nav"),A=de("ul"),D=de("li"),We(O.$$.fragment),z=$e(),G=de("li"),We(F.$$.fragment),j=$e(),Z=de("li"),We(J.$$.fragment),he=$e(),re=de("li"),We(ye.$$.fragment),Ie(n,"aria-label","breadcrumb"),Ie(e,"slot","top"),nr(e,"display","flex"),nr(e,"justify-content","space-between")},m(Ae,me){be(Ae,e,me),se(e,n),se(n,r),se(r,i),je(a,i,null),se(r,c),se(r,l),je(m,l,null),se(r,b),se(r,S),se(e,E),se(e,T),se(T,A),se(A,D),je(O,D,null),se(A,z),se(A,G),je(F,G,null),se(A,j),se(A,Z),je(J,Z,null),se(A,he),se(A,re),je(ye,re,null),ae=!0},p(Ae,me){const Ee={};me[1]&8&&(Ee.$$scope={dirty:me,ctx:Ae}),a.$set(Ee);const Qe={};me[1]&8&&(Qe.$$scope={dirty:me,ctx:Ae}),m.$set(Qe);const Le={};me[1]&8&&(Le.$$scope={dirty:me,ctx:Ae}),O.$set(Le);const lt={};me[1]&8&&(lt.$$scope={dirty:me,ctx:Ae}),F.$set(lt);const Ke={};me[1]&8&&(Ke.$$scope={dirty:me,ctx:Ae}),J.$set(Ke);const it={};me[1]&8&&(it.$$scope={dirty:me,ctx:Ae}),ye.$set(it)},i(Ae){ae||(pe(a.$$.fragment,Ae),pe(m.$$.fragment,Ae),pe(O.$$.fragment,Ae),pe(F.$$.fragment,Ae),pe(J.$$.fragment,Ae),pe(ye.$$.fragment,Ae),ae=!0)},o(Ae){xe(a.$$.fragment,Ae),xe(m.$$.fragment,Ae),xe(O.$$.fragment,Ae),xe(F.$$.fragment,Ae),xe(J.$$.fragment,Ae),xe(ye.$$.fragment,Ae),ae=!1},d(Ae){Ae&&ve(e),qe(a),qe(m),qe(O),qe(F),qe(J),qe(ye)}}}function WS(t){let e;return{c(){e=de("mark"),e.textContent=`Some parts of the neighbourhood aren't reachable by drivers, shown in + red`},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function AF(t){let e,n,r;return{c(){e=dt("Undo ("),n=dt(t[4]),r=dt(")")},m(i,a){be(i,e,a),be(i,n,a),be(i,r,a)},p(i,a){a[0]&16&&mr(n,i[4])},d(i){i&&(ve(e),ve(n),ve(r))}}}function kF(t){let e;return{c(){e=dt("Undo")},m(n,r){be(n,e,r)},p:Mt,d(n){n&&ve(e)}}}function DF(t){let e,n,r;return{c(){e=dt("Redo ("),n=dt(t[5]),r=dt(")")},m(i,a){be(i,e,a),be(i,n,a),be(i,r,a)},p(i,a){a[0]&32&&mr(n,i[5])},d(i){i&&(ve(e),ve(n),ve(r))}}}function RF(t){let e;return{c(){e=dt("Redo")},m(n,r){be(n,e,r)},p:Mt,d(n){n&&ve(e)}}}function ZS(t){let e,n;return e=new Dz({}),e.$on("close",t[24]),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p:Mt,i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function NF(t){let e,n,r,i,a=Mr(t[6]).properties.name+"",c,l,m,b,S,E,T,A,D,O,z,G,F,j,Z,J,he,re,ye,ae,Ae,me,Ee,Qe,Le,lt,Ke,it,Rt,Gt,Tt,zt,Ft,Ht,Dn,Sn,mn=t[8]>0&&WS();function or(Ne,It){return Ne[4]==0?kF:AF}let sr=or(t),Yn=sr(t);function rt(Ne,It){return Ne[5]==0?RF:DF}let Jt=rt(t),Xt=Jt(t),Ze=t[3]&&ZS(t);return{c(){e=de("div"),n=de("p"),r=dt("Editing neighbourhood "),i=de("u"),c=dt(a),l=$e(),m=de("details"),m.innerHTML=`Help

    Now that you've defined a neighbourhood boundary, you can see the + possible shortcuts that vehicles are currently able to take through it. + You can add a new modal filter to try and solve this. The colored "cell" + areas show what's reachable for drivers without leaving the boundary + you've drawn.

    `,b=$e(),mn&&mn.c(),S=$e(),E=de("div"),T=de("button"),A=de("img"),O=dt(` + Add a modal filter`),G=$e(),F=de("button"),j=dt("Add many modal filters along line"),J=$e(),he=de("button"),re=dt("Reverse directions"),ae=$e(),Ae=de("button"),Ae.textContent="Change modal filter type",me=$e(),Ee=de("label"),Qe=de("input"),Le=dt(` + Animate shortcuts`),lt=$e(),Ke=de("div"),it=de("button"),Yn.c(),Gt=$e(),Tt=de("button"),Xt.c(),Ft=$e(),Ze&&Ze.c(),Vn(A.src,D=`/ltn//filters/${t[9]}_icon.gif`)||Ie(A,"src",D),Ie(A,"width","30"),Ie(A,"alt","Add a modal filter"),T.disabled=z=t[0]=="filter",Ie(T,"data-tooltip","hotkey 1"),F.disabled=Z=t[0]=="freehand-filters",Ie(F,"data-tooltip","hotkey 2"),he.disabled=ye=t[0]=="oneway",Ie(he,"data-tooltip","hotkey 3"),nr(E,"display","flex"),nr(E,"justify-content","space-between"),Ie(Qe,"type","checkbox"),it.disabled=Rt=t[4]==0,Ie(it,"data-tooltip","Ctrl+Z"),Tt.disabled=zt=t[5]==0,Ie(Tt,"data-tooltip","Ctrl+Y"),nr(Ke,"display","flex"),nr(Ke,"justify-content","space-between"),Ie(e,"slot","sidebar")},m(Ne,It){be(Ne,e,It),se(e,n),se(n,r),se(n,i),se(i,c),se(e,l),se(e,m),se(e,b),mn&&mn.m(e,null),se(e,S),se(e,E),se(E,T),se(T,A),se(T,O),se(E,G),se(E,F),se(F,j),se(E,J),se(E,he),se(he,re),se(e,ae),se(e,Ae),se(e,me),se(e,Ee),se(Ee,Qe),Qe.checked=t[10],se(Ee,Le),se(e,lt),se(e,Ke),se(Ke,it),Yn.m(it,null),se(Ke,Gt),se(Ke,Tt),Xt.m(Tt,null),se(e,Ft),Ze&&Ze.m(e,null),Ht=!0,Dn||(Sn=[Lt(T,"click",t[19]),Lt(F,"click",t[20]),Lt(he,"click",t[21]),Lt(Ae,"click",t[22]),Lt(Qe,"change",t[23]),Lt(it,"click",t[15]),Lt(Tt,"click",t[16])],Dn=!0)},p(Ne,It){(!Ht||It[0]&64)&&a!==(a=Mr(Ne[6]).properties.name+"")&&mr(c,a),Ne[8]>0?mn||(mn=WS(),mn.c(),mn.m(e,S)):mn&&(mn.d(1),mn=null),(!Ht||It[0]&512&&!Vn(A.src,D=`/ltn//filters/${Ne[9]}_icon.gif`))&&Ie(A,"src",D),(!Ht||It[0]&1&&z!==(z=Ne[0]=="filter"))&&(T.disabled=z),(!Ht||It[0]&1&&Z!==(Z=Ne[0]=="freehand-filters"))&&(F.disabled=Z),(!Ht||It[0]&1&&ye!==(ye=Ne[0]=="oneway"))&&(he.disabled=ye),It[0]&1024&&(Qe.checked=Ne[10]),sr===(sr=or(Ne))&&Yn?Yn.p(Ne,It):(Yn.d(1),Yn=sr(Ne),Yn&&(Yn.c(),Yn.m(it,null))),(!Ht||It[0]&16&&Rt!==(Rt=Ne[4]==0))&&(it.disabled=Rt),Jt===(Jt=rt(Ne))&&Xt?Xt.p(Ne,It):(Xt.d(1),Xt=Jt(Ne),Xt&&(Xt.c(),Xt.m(Tt,null))),(!Ht||It[0]&32&&zt!==(zt=Ne[5]==0))&&(Tt.disabled=zt),Ne[3]?Ze?(Ze.p(Ne,It),It[0]&8&&pe(Ze,1)):(Ze=ZS(Ne),Ze.c(),pe(Ze,1),Ze.m(e,null)):Ze&&(qn(),xe(Ze,1,1,()=>{Ze=null}),$n())},i(Ne){Ht||(pe(Ze),Ht=!0)},o(Ne){xe(Ze),Ht=!1},d(Ne){Ne&&ve(e),mn&&mn.d(),Yn.d(),Xt.d(),Ze&&Ze.d(),Dn=!1,ti(Sn)}}}function OF(t){let e;return{c(){e=de("p"),e.textContent="Click to change direction"},m(n,r){be(n,e,r)},p:Mt,d(n){n&&ve(e)}}}function zF(t){let e,n,r,i;return{c(){e=de("div"),n=de("img"),i=dt(` + Click to add modal filter`),Vn(n.src,r=`/ltn//filters/${t[9]}_icon.gif`)||Ie(n,"src",r),Ie(n,"width","20"),Ie(n,"alt","Add modal filter")},m(a,c){be(a,e,c),se(e,n),se(e,i)},p(a,c){c[0]&512&&!Vn(n.src,r=`/ltn//filters/${a[9]}_icon.gif`)&&Ie(n,"src",r)},d(a){a&&ve(e)}}}function FF(t){let e,n=t[33].shortcuts+"",r,i,a=(t[33].name??"unnamed road")+"",c,l,m;function b(T,A){return T[0]=="filter"?zF:OF}let S=b(t),E=S(t);return{c(){e=de("p"),r=dt(n),i=dt(" shortcuts through "),c=dt(a),l=$e(),E.c(),m=zo()},m(T,A){be(T,e,A),se(e,r),se(e,i),se(e,c),be(T,l,A),E.m(T,A),be(T,m,A)},p(T,A){A[1]&4&&n!==(n=T[33].shortcuts+"")&&mr(r,n),A[1]&4&&a!==(a=(T[33].name??"unnamed road")+"")&&mr(c,a),S===(S=b(T))&&E?E.p(T,A):(E.d(1),E=S(T),E&&(E.c(),E.m(m.parentNode,m)))},d(T){T&&(ve(e),ve(l),ve(m)),E.d(T)}}}function BF(t){let e,n,r;return n=new hc({props:{openOn:"hover",$$slots:{default:[FF,({props:i})=>({33:i}),({props:i})=>[0,i?4:0]]},$$scope:{ctx:t}}}),{c(){e=de("div"),We(n.$$.fragment),Ie(e,"slot","line-popup")},m(i,a){be(i,e,a),je(n,e,null),r=!0},p(i,a){const c={};a[0]&513|a[1]&12&&(c.$$scope={dirty:a,ctx:i}),n.$set(c)},i(i){r||(pe(n.$$.fragment,i),r=!0)},o(i){xe(n.$$.fragment,i),r=!1},d(i){i&&ve(e),qe(n)}}}function HS(t){let e,n;return e=new SF({props:{paths:t[7]}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i[0]&128&&(a.paths=r[7]),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function VF(t){let e;return{c(){e=dt("Click to delete")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function UF(t){let e,n;return e=new hc({props:{openOn:"hover",$$slots:{default:[VF]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i[1]&8&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function XS(t){let e,n;return e=new zz({props:{map:Mr(t[2])}}),e.$on("done",t[17]),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i[0]&4&&(a.map=Mr(r[2])),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function GF(t){let e,n,r,i,a,c,l;n=new by({props:{gjInput:t[1],interactive:t[0]=="filter"||t[0]=="oneway",onClickLine:t[12],$$slots:{"line-popup":[BF]},$$scope:{ctx:t}}});let m=t[10]&&HS(t);a=new xy({props:{$$slots:{default:[UF]},$$scope:{ctx:t}}}),a.$on("click",t[13]);let b=t[0]=="freehand-filters"&&XS(t);return{c(){e=de("div"),We(n.$$.fragment),r=$e(),m&&m.c(),i=$e(),We(a.$$.fragment),c=$e(),b&&b.c(),Ie(e,"slot","map")},m(S,E){be(S,e,E),je(n,e,null),se(e,r),m&&m.m(e,null),se(e,i),je(a,e,null),se(e,c),b&&b.m(e,null),l=!0},p(S,E){const T={};E[0]&2&&(T.gjInput=S[1]),E[0]&1&&(T.interactive=S[0]=="filter"||S[0]=="oneway"),E[0]&513|E[1]&8&&(T.$$scope={dirty:E,ctx:S}),n.$set(T),S[10]?m?(m.p(S,E),E[0]&1024&&pe(m,1)):(m=HS(S),m.c(),pe(m,1),m.m(e,i)):m&&(qn(),xe(m,1,1,()=>{m=null}),$n());const A={};E[1]&8&&(A.$$scope={dirty:E,ctx:S}),a.$set(A),S[0]=="freehand-filters"?b?(b.p(S,E),E[0]&1&&pe(b,1)):(b=XS(S),b.c(),pe(b,1),b.m(e,null)):b&&(qn(),xe(b,1,1,()=>{b=null}),$n())},i(S){l||(pe(n.$$.fragment,S),pe(m),pe(a.$$.fragment,S),pe(b),l=!0)},o(S){xe(n.$$.fragment,S),xe(m),xe(a.$$.fragment,S),xe(b),l=!1},d(S){S&&ve(e),qe(n),m&&m.d(),qe(a),b&&b.d()}}}function jF(t){let e,n,r,i;return e=new fc({props:{$$slots:{map:[GF],sidebar:[NF],top:[MF]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(a,c){je(e,a,c),n=!0,r||(i=Lt(window,"keydown",t[14]),r=!0)},p(a,c){const l={};c[0]&4095|c[1]&8&&(l.$$scope={dirty:c,ctx:a}),e.$set(l)},i(a){n||(pe(e.$$.fragment,a),n=!0)},o(a){xe(e.$$.fragment,a),n=!1},d(a){qe(e,a),r=!1,i()}}}function qF(t,e,n){let r,i,a,c,l,m,b;St(t,Bu,Tt=>n(18,i=Tt)),St(t,yv,Tt=>n(9,a=Tt)),St(t,to,Tt=>n(31,c=Tt)),St(t,au,Tt=>n(2,l=Tt)),St(t,$x,Tt=>n(10,m=Tt)),St(t,An,Tt=>n(11,b=Tt));let S="filter",E=!1,T=0,A=0,D,O,z=JSON.parse(c.getAllShortcuts());ys(()=>{l.doubleClickZoom.enable()});function G(Tt){n(1,O=JSON.parse(c.renderNeighbourhood())),n(6,D=O.features.find(zt=>zt.properties.kind=="boundary")),n(4,T=O.undo_length),n(5,A=O.redo_length),n(7,z=JSON.parse(c.getAllShortcuts())),Wd()}function F(Tt,zt){S=="filter"?(c.addModalFilter(zt,a),Kt(Bu,i++,i)):S=="oneway"&&(c.toggleDirection(Tt.properties.road),Kt(Bu,i++,i))}function j(Tt){let zt=Tt.detail.features[0];c.deleteModalFilter(zt.properties.road),Kt(Bu,i++,i)}function Z(Tt){Tt.target.tagName!="INPUT"&&(Tt.ctrlKey&&Tt.key=="z"&&J(),Tt.ctrlKey&&Tt.key=="y"&&he(),Tt.key=="1"&&n(0,S="filter"),Tt.key=="2"&&n(0,S="freehand-filters"),Tt.key=="3"&&n(0,S="oneway"))}function J(){c.undo(),Kt(Bu,i++,i)}function he(){c.redo(),Kt(Bu,i++,i)}function re(Tt){let zt=Tt.detail;zt&&(c.addManyModalFilters(zt,a),Kt(Bu,i++,i)),n(0,S="filter")}const ye=()=>n(0,S="filter"),ae=()=>n(0,S="freehand-filters"),Ae=()=>n(0,S="oneway"),me=()=>n(3,E=!0);function Ee(){m=this.checked,$x.set(m)}const Qe=()=>n(3,E=!1),Le=()=>Kt(An,b={mode:"title"},b),lt=()=>Kt(An,b={mode:"network"},b),Ke=()=>Kt(An,b={mode:"view-shortcuts"},b),it=()=>Kt(An,b={mode:"route",prevMode:"neighbourhood"},b),Rt=()=>Kt(An,b={mode:"set-boundary",name:Mr(D).properties.name,existing:D},b),Gt=()=>Kt(An,b={mode:"debug"},b);return t.$$.update=()=>{t.$$.dirty[0]&5&&(S=="oneway"?l.doubleClickZoom.disable():l.doubleClickZoom.enable()),t.$$.dirty[0]&262144&&G(),t.$$.dirty[0]&2&&n(8,r=O.features.filter(Tt=>Tt.properties.kind=="cell"&&Tt.properties.cell_color=="disconnected").length)},[S,O,l,E,T,A,D,z,r,a,m,b,F,j,Z,J,he,re,i,ye,ae,Ae,me,Ee,Qe,Le,lt,Ke,it,Rt,Gt]}class $F extends nn{constructor(e){super(),tn(this,e,qF,jF,Zt,{},null,[-1,-1])}}const j_="/ltn/assets/delete_light-ec75e756.svg",q_="/ltn/assets/delete_dark-953cd893.svg",$_="/ltn/assets/edit_light-f3f51206.svg",W_="/ltn/assets/edit_dark-97c94d36.svg";function YS(t,e,n){const r=t.slice();return r[19]=e[n],r}function WF(t){let e;return{c(){e=dt("Choose project")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function ZF(t){let e;return{c(){e=dt("Route")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function HF(t){let e,n,r,i,a,c,l,m,b,S,E,T,A;return a=new dr({props:{$$slots:{default:[WF]},$$scope:{ctx:t}}}),a.$on("click",t[16]),T=new dr({props:{$$slots:{default:[ZF]},$$scope:{ctx:t}}}),T.$on("click",t[17]),{c(){e=de("div"),n=de("nav"),r=de("ul"),i=de("li"),We(a.$$.fragment),c=$e(),l=de("li"),l.textContent="Pick neighbourhood",m=$e(),b=de("nav"),S=de("ul"),E=de("li"),We(T.$$.fragment),Ie(n,"aria-label","breadcrumb"),Ie(e,"slot","top"),nr(e,"display","flex"),nr(e,"justify-content","space-between")},m(D,O){be(D,e,O),se(e,n),se(n,r),se(r,i),je(a,i,null),se(r,c),se(r,l),se(e,m),se(e,b),se(b,S),se(S,E),je(T,E,null),A=!0},p(D,O){const z={};O&4194304&&(z.$$scope={dirty:O,ctx:D}),a.$set(z);const G={};O&4194304&&(G.$$scope={dirty:O,ctx:D}),T.$set(G)},i(D){A||(pe(a.$$.fragment,D),pe(T.$$.fragment,D),A=!0)},o(D){xe(a.$$.fragment,D),xe(T.$$.fragment,D),A=!1},d(D){D&&ve(e),qe(a),qe(T)}}}function XF(t){let e;return{c(){e=dt("Draw a new boundary")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function YF(t){let e=t[19]+"",n;return{c(){n=dt(e)},m(r,i){be(r,n,i)},p(r,i){i&2&&e!==(e=r[19]+"")&&mr(n,e)},d(r){r&&ve(n)}}}function KS(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D,O;function z(){return t[13](t[19])}r=new dr({props:{$$slots:{default:[YF]},$$scope:{ctx:t}}}),r.$on("click",z);function G(){return t[14](t[19])}function F(){return t[15](t[19])}return{c(){e=de("li"),n=de("span"),We(r.$$.fragment),i=$e(),a=de("button"),c=de("img"),m=$e(),b=de("button"),S=de("img"),T=$e(),Vn(c.src,l=t[4]?$_:W_)||Ie(c,"src",l),Ie(c,"alt","Rename neighbourhood"),Ie(a,"class","secondary"),Vn(S.src,E=t[4]?j_:q_)||Ie(S,"src",E),Ie(S,"alt","Delete neighbourhood"),Ie(b,"class","secondary"),nr(n,"display","flex"),nr(n,"justify-content","space-between")},m(j,Z){be(j,e,Z),se(e,n),je(r,n,null),se(n,i),se(n,a),se(a,c),se(n,m),se(n,b),se(b,S),se(e,T),A=!0,D||(O=[Lt(a,"click",G),Lt(b,"click",F)],D=!0)},p(j,Z){t=j;const J={};Z&4194306&&(J.$$scope={dirty:Z,ctx:t}),r.$set(J),(!A||Z&16&&!Vn(c.src,l=t[4]?$_:W_))&&Ie(c,"src",l),(!A||Z&16&&!Vn(S.src,E=t[4]?j_:q_))&&Ie(S,"src",E)},i(j){A||(pe(r.$$.fragment,j),A=!0)},o(j){xe(r.$$.fragment,j),A=!1},d(j){j&&ve(e),qe(r),D=!1,ti(O)}}}function KF(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D,O,z,G,F,j;i=new dr({props:{$$slots:{default:[XF]},$$scope:{ctx:t}}}),i.$on("click",t[8]);let Z=vs(t[1]),J=[];for(let re=0;rexe(J[re],1,1,()=>{J[re]=null});return{c(){e=de("div"),n=de("details"),n.innerHTML=`Help

    Inside the neighbourhood you define, the goal is to eliminate (or + deliberately permit) through-traffic. An appropriate neighbourhood + boundary depends on many factors. The simplest approach is to find the + area bounded on all sides by "main" roads, which are designed for higher + traffic volumes. There are many other considerations, though -- maybe + severances like rivers or rail should be part of a boundary. Bridges and + tunnels near a boundary may be confusing as well. And note that your + boundary may not match the conventional definition of "neighbourhood."

    `,r=$e(),We(i.$$.fragment),a=$e(),c=de("ul");for(let re=0;re({18:r}),({props:r})=>r?262144:0]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&4456448&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function e6(t){let e,n;const r=[Ui("neighbourhood-boundaries"),{filter:["==",["get","kind"],"boundary"]},{paint:{"fill-color":"red","fill-opacity":p_(.3,.5)}},{eventsIfTopMost:!0},{manageHoverState:!0},{hoverCursor:"pointer"}];let i={$$slots:{default:[QF]},$$scope:{ctx:t}};for(let a=0;an(11,a=J)),St(t,Zu,J=>n(2,c=J)),St(t,An,J=>n(3,l=J)),St(t,$d,J=>n(4,m=J));function b(J){a.setCurrentNeighbourhood(J),Kt(An,l={mode:"neighbourhood"},l)}function S(J){window.confirm(`Really delete neighbourhood ${J}? You can't undo this.`)&&(a.deleteNeighbourhoodBoundary(J),Wd(),n(0,r=JSON.parse(a.toSavefile())))}function E(J){let he=window.prompt(`Rename neighbourhood ${J} to what?`,J);he&&(a.renameNeighbourhoodBoundary(J,he),Wd(),n(0,r=JSON.parse(a.toSavefile())))}function T(){let J=window.prompt("What do you want to name the neighbourhood?");J&&Kt(An,l={mode:"set-boundary",name:J,existing:null},l)}function A(){jx(c+".geojson",a.toSavefile())}function D(){jx("debug_route_snapper.geojson",a.toRouteSnapperGj())}const O=J=>b(Mr(J.detail.features[0].properties).name),z=J=>b(J),G=J=>E(J),F=J=>S(J),j=()=>Kt(An,l={mode:"title"},l),Z=()=>Kt(An,l={mode:"route",prevMode:"network"},l);return t.$$.update=()=>{t.$$.dirty&2048&&n(0,r=JSON.parse(a.toSavefile())),t.$$.dirty&1&&n(1,i=r.features.filter(J=>J.properties.kind=="boundary").map(J=>J.properties.name))},[r,i,c,l,m,b,S,E,T,A,D,a,O,z,G,F,j,Z]}class i6 extends nn{constructor(e){super(),tn(this,e,r6,n6,Zt,{})}}function o6(t){let e;return{c(){e=dt("Choose project")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function s6(t){let e;return{c(){e=dt("Pick neighbourhood")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function JS(t){let e,n,r;return n=new dr({props:{$$slots:{default:[a6]},$$scope:{ctx:t}}}),n.$on("click",t[13]),{c(){e=de("li"),We(n.$$.fragment)},m(i,a){be(i,e,a),je(n,e,null),r=!0},p(i,a){const c={};a&16384&&(c.$$scope={dirty:a,ctx:i}),n.$set(c)},i(i){r||(pe(n.$$.fragment,i),r=!0)},o(i){xe(n.$$.fragment,i),r=!1},d(i){i&&ve(e),qe(n)}}}function a6(t){let e;return{c(){e=dt("Editing")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function l6(t){let e,n,r,i,a,c,l,m,b,S,E,T;a=new dr({props:{$$slots:{default:[o6]},$$scope:{ctx:t}}}),a.$on("click",t[11]),m=new dr({props:{$$slots:{default:[s6]},$$scope:{ctx:t}}}),m.$on("click",t[12]);let A=t[0]=="neighbourhood"&&JS(t);return{c(){e=de("div"),n=de("nav"),r=de("ul"),i=de("li"),We(a.$$.fragment),c=$e(),l=de("li"),We(m.$$.fragment),b=$e(),A&&A.c(),S=$e(),E=de("li"),E.textContent="Routing",Ie(n,"aria-label","breadcrumb"),Ie(e,"slot","top")},m(D,O){be(D,e,O),se(e,n),se(n,r),se(r,i),je(a,i,null),se(r,c),se(r,l),je(m,l,null),se(r,b),A&&A.m(r,null),se(r,S),se(r,E),T=!0},p(D,O){const z={};O&16384&&(z.$$scope={dirty:O,ctx:D}),a.$set(z);const G={};O&16384&&(G.$$scope={dirty:O,ctx:D}),m.$set(G),D[0]=="neighbourhood"?A?(A.p(D,O),O&1&&pe(A,1)):(A=JS(D),A.c(),pe(A,1),A.m(r,S)):A&&(qn(),xe(A,1,1,()=>{A=null}),$n())},i(D){T||(pe(a.$$.fragment,D),pe(m.$$.fragment,D),pe(A),T=!0)},o(D){xe(a.$$.fragment,D),xe(m.$$.fragment,D),xe(A),T=!1},d(D){D&&ve(e),qe(a),qe(m),A&&A.d()}}}function u6(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D,O,z,G;return n=new J1({}),n.$on("click",t[7]),{c(){e=de("div"),We(n.$$.fragment),r=$e(),i=de("p"),i.textContent="Drag markers for a route",a=$e(),c=de("p"),c.innerHTML=`Route before + , + route after`,l=$e(),m=de("label"),b=dt("Slow-down factor for main roads: "),S=dt(t[1]),E=$e(),T=de("input"),A=$e(),D=de("i"),D.textContent=`Increase to see how drivers may detour in heavy traffic. 1 means + free-flow.`,Ie(T,"type","range"),Ie(T,"min","1.0"),Ie(T,"max","5.0"),Ie(T,"step","0.1"),Ie(e,"slot","sidebar")},m(F,j){be(F,e,j),je(n,e,null),se(e,r),se(e,i),se(e,a),se(e,c),se(e,l),se(e,m),se(m,b),se(m,S),se(m,E),se(m,T),Jo(T,t[1]),se(e,A),se(e,D),O=!0,z||(G=[Lt(T,"change",t[10]),Lt(T,"input",t[10])],z=!0)},p(F,j){(!O||j&2)&&mr(S,F[1]),j&2&&Jo(T,F[1])},i(F){O||(pe(n.$$.fragment,F),O=!0)},o(F){xe(n.$$.fragment,F),O=!1},d(F){F&&ve(e),qe(n),z=!1,ti(G)}}}function QS(t){let e,n;return e=new by({props:{gjInput:JSON.parse(Mr(t[4]).renderNeighbourhood()),interactive:!1}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&16&&(a.gjInput=JSON.parse(Mr(r[4]).renderNeighbourhood())),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function c6(t){let e,n;const r=[Ui("compare-route"),{paint:{"line-width":10,"line-color":kd(["get","kind"],{before:"red",after:"blue"},"red")}}];let i={};for(let a=0;aWc(l,"lngLat",D));function z(F){t[9](F)}let G={draggable:!0,$$slots:{default:[f6]},$$scope:{ctx:t}};return t[2]!==void 0&&(G.lngLat=t[2]),S=new ow({props:G}),Vi.push(()=>Wc(S,"lngLat",z)),{c(){e=de("div"),A&&A.c(),n=$e(),We(r.$$.fragment),i=$e(),We(a.$$.fragment),c=$e(),We(l.$$.fragment),b=$e(),We(S.$$.fragment),Ie(e,"slot","map")},m(F,j){be(F,e,j),A&&A.m(e,null),se(e,n),je(r,e,null),se(e,i),je(a,e,null),se(e,c),je(l,e,null),se(e,b),je(S,e,null),T=!0},p(F,j){F[0]=="neighbourhood"?A?(A.p(F,j),j&1&&pe(A,1)):(A=QS(F),A.c(),pe(A,1),A.m(e,n)):A&&(qn(),xe(A,1,1,()=>{A=null}),$n());const Z={};j&32&&(Z.data=F[5]),j&16384&&(Z.$$scope={dirty:j,ctx:F}),a.$set(Z);const J={};j&16384&&(J.$$scope={dirty:j,ctx:F}),!m&&j&8&&(m=!0,J.lngLat=F[3],$c(()=>m=!1)),l.$set(J);const he={};j&16384&&(he.$$scope={dirty:j,ctx:F}),!E&&j&4&&(E=!0,he.lngLat=F[2],$c(()=>E=!1)),S.$set(he)},i(F){T||(pe(A),pe(r.$$.fragment,F),pe(a.$$.fragment,F),pe(l.$$.fragment,F),pe(S.$$.fragment,F),T=!0)},o(F){xe(A),xe(r.$$.fragment,F),xe(a.$$.fragment,F),xe(l.$$.fragment,F),xe(S.$$.fragment,F),T=!1},d(F){F&&ve(e),A&&A.d(),qe(r),qe(a),qe(l),qe(S)}}}function d6(t){let e,n;return e=new fc({props:{$$slots:{map:[p6],sidebar:[u6],top:[l6]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,[i]){const a={};i&16511&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function m6(t,e,n){let r,i,a,c,l,m;St(t,An,G=>n(6,i=G)),St(t,qx,G=>n(1,a=G)),St(t,_v,G=>n(2,c=G)),St(t,gv,G=>n(3,l=G)),St(t,to,G=>n(4,m=G));let{prevMode:b}=e;function S(){Kt(An,i={mode:b},i)}function E(G){l=G,gv.set(l)}function T(G){c=G,_v.set(c)}function A(){a=SP(this.value),qx.set(a)}const D=()=>Kt(An,i={mode:"title"},i),O=()=>Kt(An,i={mode:"network"},i),z=()=>Kt(An,i={mode:"neighbourhood"},i);return t.$$set=G=>{"prevMode"in G&&n(0,b=G.prevMode)},t.$$.update=()=>{t.$$.dirty&30&&n(5,r=JSON.parse(m.compareRoute(l.lng,l.lat,c.lng,c.lat,a)))},[b,a,c,l,m,r,i,S,E,T,A,D,O,z]}class g6 extends nn{constructor(e){super(),tn(this,e,m6,d6,Zt,{prevMode:0})}}const eE="/ltn/assets/settings_light-342fb430.svg",tE="/ltn/assets/settings_dark-088e95f1.svg";function nE(t){let e,n;return e=new a1({props:{$$slots:{default:[_6]},$$scope:{ctx:t}}}),e.$on("close",t[5]),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&67&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function _6(t){let e,n,r,i,a,c,l,m,b,S,E,T,A;return r=new w5({}),{c(){e=de("h1"),e.textContent="Settings",n=$e(),We(r.$$.fragment),i=$e(),a=de("label"),c=de("input"),l=dt(` + Light mode`),m=$e(),b=de("center"),S=de("button"),S.textContent="Confirm",Ie(c,"type","checkbox"),Ie(c,"role","switch")},m(D,O){be(D,e,O),be(D,n,O),je(r,D,O),be(D,i,O),be(D,a,O),se(a,c),c.checked=t[0],se(a,l),be(D,m,O),be(D,b,O),se(b,S),E=!0,T||(A=[Lt(c,"change",t[3]),Lt(S,"click",t[4])],T=!0)},p(D,O){O&1&&(c.checked=D[0])},i(D){E||(pe(r.$$.fragment,D),E=!0)},o(D){xe(r.$$.fragment,D),E=!1},d(D){D&&(ve(e),ve(n),ve(i),ve(a),ve(m),ve(b)),qe(r,D),T=!1,ti(A)}}}function y6(t){let e,n,r,i,a,c,l,m,b=t[1]&&nE(t);return{c(){e=de("button"),n=de("img"),i=$e(),b&&b.c(),a=zo(),Vn(n.src,r=t[0]?eE:tE)||Ie(n,"src",r),Ie(n,"alt","Settings"),Ie(e,"class","outline")},m(S,E){be(S,e,E),se(e,n),be(S,i,E),b&&b.m(S,E),be(S,a,E),c=!0,l||(m=Lt(e,"click",t[2]),l=!0)},p(S,[E]){(!c||E&1&&!Vn(n.src,r=S[0]?eE:tE))&&Ie(n,"src",r),S[1]?b?(b.p(S,E),E&2&&pe(b,1)):(b=nE(S),b.c(),pe(b,1),b.m(a.parentNode,a)):b&&(qn(),xe(b,1,1,()=>{b=null}),$n())},i(S){c||(pe(b),c=!0)},o(S){xe(b),c=!1},d(S){S&&(ve(e),ve(i),ve(a)),b&&b.d(S),l=!1,m()}}}function v6(t,e,n){let r;St(t,$d,b=>n(0,r=b));let i=!1;const a=()=>n(1,i=!0);function c(){r=this.checked,$d.set(r)}const l=()=>n(1,i=!1),m=()=>n(1,i=!1);return t.$$.update=()=>{t.$$.dirty&1&&document.documentElement.setAttribute("data-theme",r?"light":"dark")},[r,i,a,c,l,m]}class b6 extends nn{constructor(e){super(),tn(this,e,v6,y6,Zt,{})}}const lT=Gn({type:"FeatureCollection",features:[]}),x6=Gn(!0),uT=Gn(0);function w6(t){let e,n,r,i,a,c;const l=[Ui("route-points"),{filter:v5},{paint:{"circle-color":kd(["get","type"],{"snapped-waypoint":"red","free-waypoint":"blue"},"black"),"circle-opacity":["case",["has","hovered"],.5,1],"circle-radius":kd(["get","type"],{node:qg/2},qg)}}];let m={};for(let A=0;An(0,r=i)),[r]}class I6 extends nn{constructor(e){super(),tn(this,e,E6,S6,Zt,{})}}function C6(t){let e,n,r;return{c(){e=dt("Undo ("),n=dt(t[1]),r=dt(")")},m(i,a){be(i,e,a),be(i,n,a),be(i,r,a)},p(i,a){a&2&&mr(n,i[1])},d(i){i&&(ve(e),ve(n),ve(r))}}}function T6(t){let e;return{c(){e=dt("Undo")},m(n,r){be(n,e,r)},p:Mt,d(n){n&&ve(e)}}}function L6(t){let e,n,r,i,a,c;function l(S,E){return S[1]==0?T6:C6}let m=l(t),b=m(t);return{c(){e=de("button"),b.c(),r=$e(),i=de("ul"),i.innerHTML=`
  • Click + the map to add points
  • Click and drag + any point to move it
  • Click + a waypoint to delete it
  • Press Control+Z + to undo your last change
  • Press Enter + or + double click + to finish
  • Press Escape + to cancel
  • `,e.disabled=n=t[1]==0,Ie(e,"data-tooltip","Ctrl+Z")},m(S,E){be(S,e,E),b.m(e,null),be(S,r,E),be(S,i,E),a||(c=Lt(e,"click",t[2]),a=!0)},p(S,[E]){m===(m=l(S))&&b?b.p(S,E):(b.d(1),b=m(S),b&&(b.c(),b.m(e,null))),E&2&&n!==(n=S[1]==0)&&(e.disabled=n)},i:Mt,o:Mt,d(S){S&&(ve(e),ve(r),ve(i)),b.d(),a=!1,c()}}}function P6(t,e,n){let r;St(t,uT,c=>n(1,r=c));let{route_tool:i}=e;const a=()=>i.undo();return t.$$set=c=>{"route_tool"in c&&n(0,i=c.route_tool)},[i,r,a]}class M6 extends nn{constructor(e){super(),tn(this,e,P6,L6,Zt,{route_tool:0})}}function A6(t){let e;return{c(){e=dt("Choose project")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function k6(t){let e;return{c(){e=dt("Pick neighbourhood")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function D6(t){let e;return{c(){e=de("li"),e.textContent="Creating new neighbourhood boundary"},m(n,r){be(n,e,r)},p:Mt,i:Mt,o:Mt,d(n){n&&ve(e)}}}function R6(t){let e,n,r,i,a;return n=new dr({props:{$$slots:{default:[N6]},$$scope:{ctx:t}}}),n.$on("click",t[8]),{c(){e=de("li"),We(n.$$.fragment),r=$e(),i=de("li"),i.textContent="Changing neighbourhood boundary"},m(c,l){be(c,e,l),je(n,e,null),be(c,r,l),be(c,i,l),a=!0},p(c,l){const m={};l&1024&&(m.$$scope={dirty:l,ctx:c}),n.$set(m)},i(c){a||(pe(n.$$.fragment,c),a=!0)},o(c){xe(n.$$.fragment,c),a=!1},d(c){c&&(ve(e),ve(r),ve(i)),qe(n)}}}function N6(t){let e;return{c(){e=dt("Editing")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function O6(t){let e,n,r,i,a,c,l,m,b,S,E,T;a=new dr({props:{$$slots:{default:[A6]},$$scope:{ctx:t}}}),a.$on("click",t[6]),m=new dr({props:{$$slots:{default:[k6]},$$scope:{ctx:t}}}),m.$on("click",t[7]);const A=[R6,D6],D=[];function O(z,G){return z[1]?0:1}return S=O(t),E=D[S]=A[S](t),{c(){e=de("div"),n=de("nav"),r=de("ul"),i=de("li"),We(a.$$.fragment),c=$e(),l=de("li"),We(m.$$.fragment),b=$e(),E.c(),Ie(n,"aria-label","breadcrumb"),Ie(e,"slot","top")},m(z,G){be(z,e,G),se(e,n),se(n,r),se(r,i),je(a,i,null),se(r,c),se(r,l),je(m,l,null),se(r,b),D[S].m(r,null),T=!0},p(z,G){const F={};G&1024&&(F.$$scope={dirty:G,ctx:z}),a.$set(F);const j={};G&1024&&(j.$$scope={dirty:G,ctx:z}),m.$set(j);let Z=S;S=O(z),S===Z?D[S].p(z,G):(qn(),xe(D[Z],1,1,()=>{D[Z]=null}),$n(),E=D[S],E?E.p(z,G):(E=D[S]=A[S](z),E.c()),pe(E,1),E.m(r,null))},i(z){T||(pe(a.$$.fragment,z),pe(m.$$.fragment,z),pe(E),T=!0)},o(z){xe(a.$$.fragment,z),xe(m.$$.fragment,z),xe(E),T=!1},d(z){z&&ve(e),qe(a),qe(m),D[S].d()}}}function z6(t){let e;return{c(){e=dt("Finish")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function F6(t){let e;return{c(){e=dt("Cancel")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function B6(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D;return l=new dr({props:{$$slots:{default:[z6]},$$scope:{ctx:t}}}),l.$on("click",t[5]),b=new dr({props:{$$slots:{default:[F6]},$$scope:{ctx:t}}}),b.$on("click",t[4]),A=new M6({props:{route_tool:Mr(t[2])}}),{c(){e=de("div"),n=de("h1"),r=dt("Draw your neighbourhood boundary for "),i=dt(t[0]),a=$e(),c=de("div"),We(l.$$.fragment),m=$e(),We(b.$$.fragment),S=$e(),E=de("p"),E.textContent="TODO: maybe move the instructions from the previous screen to here...",T=$e(),We(A.$$.fragment),nr(c,"display","flex"),nr(c,"justify-content","space-between"),Ie(e,"slot","sidebar")},m(O,z){be(O,e,z),se(e,n),se(n,r),se(n,i),se(e,a),se(e,c),je(l,c,null),se(c,m),je(b,c,null),se(e,S),se(e,E),se(e,T),je(A,e,null),D=!0},p(O,z){(!D||z&1)&&mr(i,O[0]);const G={};z&1024&&(G.$$scope={dirty:z,ctx:O}),l.$set(G);const F={};z&1024&&(F.$$scope={dirty:z,ctx:O}),b.$set(F);const j={};z&4&&(j.route_tool=Mr(O[2])),A.$set(j)},i(O){D||(pe(l.$$.fragment,O),pe(b.$$.fragment,O),pe(A.$$.fragment,O),D=!0)},o(O){xe(l.$$.fragment,O),xe(b.$$.fragment,O),xe(A.$$.fragment,O),D=!1},d(O){O&&ve(e),qe(l),qe(b),qe(A)}}}function V6(t){let e,n,r;return n=new I6({}),{c(){e=de("div"),We(n.$$.fragment),Ie(e,"slot","map")},m(i,a){be(i,e,a),je(n,e,null),r=!0},p:Mt,i(i){r||(pe(n.$$.fragment,i),r=!0)},o(i){xe(n.$$.fragment,i),r=!1},d(i){i&&ve(e),qe(n)}}}function U6(t){let e,n;return e=new fc({props:{$$slots:{map:[V6],sidebar:[B6],top:[O6]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,[i]){const a={};i&1039&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function G6(t,e,n){let r,i,a;St(t,f_,A=>n(2,r=A)),St(t,An,A=>n(3,i=A)),St(t,to,A=>n(9,a=A));let{name:c}=e,{existing:l}=e;l?r.editExistingArea(l):r.startArea();function m(){l?Kt(An,i={mode:"neighbourhood"},i):Kt(An,i={mode:"network"},i),r.clearEventListeners()}r.addEventListenerSuccess(A=>{try{a.setNeighbourhoodBoundary(c,A),Wd(),a.setCurrentNeighbourhood(c),Kt(An,i={mode:"neighbourhood"},i),r.clearEventListeners()}catch{window.alert("Known georust bug hit, sorry. You may need to just refresh the page now."),m()}}),r.addEventListenerFailure(m);const b=()=>Mr(r).finish(),S=()=>Kt(An,i={mode:"title"},i),E=()=>Kt(An,i={mode:"network"},i),T=()=>Kt(An,i={mode:"neighbourhood"},i);return t.$$set=A=>{"name"in A&&n(0,c=A.name),"existing"in A&&n(1,l=A.existing)},[c,l,r,i,m,b,S,E,T]}class j6 extends nn{constructor(e){super(),tn(this,e,G6,U6,Zt,{name:0,existing:1})}}var Mo=63710088e-1,rb={centimeters:Mo*100,centimetres:Mo*100,degrees:Mo/111325,feet:Mo*3.28084,inches:Mo*39.37,kilometers:Mo/1e3,kilometres:Mo/1e3,meters:Mo,metres:Mo,miles:Mo/1609.344,millimeters:Mo*1e3,millimetres:Mo*1e3,nauticalmiles:Mo/1852,radians:1,yards:Mo*1.0936},q6={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Mo,yards:1.0936133},i1={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046};function Ia(t,e,n){n===void 0&&(n={});var r={type:"Feature"};return(n.id===0||n.id)&&(r.id=n.id),n.bbox&&(r.bbox=n.bbox),r.properties=e||{},r.geometry=t,r}function $6(t,e,n){switch(t){case"Point":return ds(e).geometry;case"LineString":return ha(e).geometry;case"Polygon":return ib(e).geometry;case"MultiPoint":return hT(e).geometry;case"MultiLineString":return cT(e).geometry;case"MultiPolygon":return fT(e).geometry;default:throw new Error(t+" is invalid")}}function ds(t,e,n){if(n===void 0&&(n={}),!t)throw new Error("coordinates is required");if(!Array.isArray(t))throw new Error("coordinates must be an Array");if(t.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!Z_(t[0])||!Z_(t[1]))throw new Error("coordinates must contain numbers");var r={type:"Point",coordinates:t};return Ia(r,e,n)}function W6(t,e,n){return n===void 0&&(n={}),sh(t.map(function(r){return ds(r,e)}),n)}function ib(t,e,n){n===void 0&&(n={});for(var r=0,i=t;r=0))throw new Error("precision must be a positive number");var n=Math.pow(10,e||0);return Math.round(t*n)/n}function ob(t,e){e===void 0&&(e="kilometers");var n=rb[e];if(!n)throw new Error(e+" units is invalid");return t*n}function Ey(t,e){e===void 0&&(e="kilometers");var n=rb[e];if(!n)throw new Error(e+" units is invalid");return t/n}function K6(t,e){return hm(Ey(t,e))}function J6(t){var e=t%360;return e<0&&(e+=360),e}function hm(t){var e=t%(2*Math.PI);return e*180/Math.PI}function fa(t){var e=t%360;return e*Math.PI/180}function Q6(t,e,n){if(e===void 0&&(e="kilometers"),n===void 0&&(n="kilometers"),!(t>=0))throw new Error("length must be a positive number");return ob(Ey(t,e),n)}function eB(t,e,n){if(e===void 0&&(e="meters"),n===void 0&&(n="kilometers"),!(t>=0))throw new Error("area must be a positive number");var r=i1[e];if(!r)throw new Error("invalid original units");var i=i1[n];if(!i)throw new Error("invalid final units");return t/r*i}function Z_(t){return!isNaN(t)&&t!==null&&!Array.isArray(t)}function sb(t){return!!t&&t.constructor===Object}function tB(t){if(!t)throw new Error("bbox is required");if(!Array.isArray(t))throw new Error("bbox must be an Array");if(t.length!==4&&t.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");t.forEach(function(e){if(!Z_(e))throw new Error("bbox must only contain numbers")})}function nB(t){if(!t)throw new Error("id is required");if(["string","number"].indexOf(typeof t)===-1)throw new Error("id must be a number or a string")}const rB=Object.freeze(Object.defineProperty({__proto__:null,areaFactors:i1,bearingToAzimuth:J6,convertArea:eB,convertLength:Q6,degreesToRadians:fa,earthRadius:Mo,factors:rb,feature:Ia,featureCollection:sh,geometry:$6,geometryCollection:X6,isNumber:Z_,isObject:sb,lengthToDegrees:K6,lengthToRadians:Ey,lineString:ha,lineStrings:H6,multiLineString:cT,multiPoint:hT,multiPolygon:fT,point:ds,points:W6,polygon:ib,polygons:Z6,radiansToDegrees:hm,radiansToLength:ob,round:Y6,unitsFactors:q6,validateBBox:tB,validateId:nB},Symbol.toStringTag,{value:"Module"}));function fm(t){if(!t)throw new Error("coord is required");if(!Array.isArray(t)){if(t.type==="Feature"&&t.geometry!==null&&t.geometry.type==="Point")return t.geometry.coordinates;if(t.type==="Point")return t.coordinates}if(Array.isArray(t)&&t.length>=2&&!Array.isArray(t[0])&&!Array.isArray(t[1]))return t;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function tp(t){if(Array.isArray(t))return t;if(t.type==="Feature"){if(t.geometry!==null)return t.geometry.coordinates}else if(t.coordinates)return t.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function pT(t,e,n){if(n===void 0&&(n={}),n.final===!0)return iB(t,e);var r=fm(t),i=fm(e),a=fa(r[0]),c=fa(i[0]),l=fa(r[1]),m=fa(i[1]),b=Math.sin(c-a)*Math.cos(m),S=Math.cos(l)*Math.sin(m)-Math.sin(l)*Math.cos(m)*Math.cos(c-a);return hm(Math.atan2(b,S))}function iB(t,e){var n=pT(e,t);return n=(n+180)%360,n}function bd(t,e,n){n===void 0&&(n={});var r=fm(t),i=fm(e),a=fa(i[1]-r[1]),c=fa(i[0]-r[0]),l=fa(r[1]),m=fa(i[1]),b=Math.pow(Math.sin(a/2),2)+Math.pow(Math.sin(c/2),2)*Math.cos(l)*Math.cos(m);return ob(2*Math.atan2(Math.sqrt(b),Math.sqrt(1-b)),n.units)}function rE(t,e,n,r){r===void 0&&(r={});var i=fm(t),a=fa(i[0]),c=fa(i[1]),l=fa(n),m=Ey(e,r.units),b=Math.asin(Math.sin(c)*Math.cos(m)+Math.cos(c)*Math.sin(m)*Math.cos(l)),S=a+Math.atan2(Math.sin(l)*Math.sin(m)*Math.cos(c),Math.cos(m)-Math.sin(c)*Math.sin(b)),E=hm(S),T=hm(b);return ds([E,T],r.properties)}function Im(t,e,n){if(t!==null)for(var r,i,a,c,l,m,b,S=0,E=0,T,A=t.type,D=A==="FeatureCollection",O=A==="Feature",z=D?t.features.length:1,G=0;Gm||D>b||O>S){l=E,m=r,b=D,S=O,a=0;return}var z=ha([l,E],n.properties);if(e(z,r,i,O,a)===!1)return!1;a++,l=E})===!1)return!1}}})}function hB(t,e,n){var r=n,i=!1;return mT(t,function(a,c,l,m,b){i===!1&&n===void 0?r=a:r=e(r,a,c,l,m,b),i=!0}),r}function gT(t,e){if(!t)throw new Error("geojson is required");pp(t,function(n,r,i){if(n.geometry!==null){var a=n.geometry.type,c=n.geometry.coordinates;switch(a){case"LineString":if(e(n,r,i,0,0)===!1)return!1;break;case"Polygon":for(var l=0;li?n:i,b=r>a?r:a;return[c,l,m,b]}var lb={exports:{}},_T={exports:{}};(function(t,e){(function(n,r){t.exports=r()})(dm,function(){function n(F,j,Z,J,he){(function re(ye,ae,Ae,me,Ee){for(;me>Ae;){if(me-Ae>600){var Qe=me-Ae+1,Le=ae-Ae+1,lt=Math.log(Qe),Ke=.5*Math.exp(2*lt/3),it=.5*Math.sqrt(lt*Ke*(Qe-Ke)/Qe)*(Le-Qe/2<0?-1:1),Rt=Math.max(Ae,Math.floor(ae-Le*Ke/Qe+it)),Gt=Math.min(me,Math.floor(ae+(Qe-Le)*Ke/Qe+it));re(ye,ae,Rt,Gt,Ee)}var Tt=ye[ae],zt=Ae,Ft=me;for(r(ye,Ae,ae),Ee(ye[me],Tt)>0&&r(ye,Ae,me);zt0;)Ft--}Ee(ye[Ae],Tt)===0?r(ye,Ae,Ft):r(ye,++Ft,me),Ft<=ae&&(Ae=Ft+1),ae<=Ft&&(me=Ft-1)}})(F,j,Z||0,J||F.length-1,he||i)}function r(F,j,Z){var J=F[j];F[j]=F[Z],F[Z]=J}function i(F,j){return Fj?1:0}var a=function(F){F===void 0&&(F=9),this._maxEntries=Math.max(4,F),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function c(F,j,Z){if(!Z)return j.indexOf(F);for(var J=0;J=F.minX&&j.maxY>=F.minY}function z(F){return{children:F,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function G(F,j,Z,J,he){for(var re=[j,Z];re.length;)if(!((Z=re.pop())-(j=re.pop())<=J)){var ye=j+Math.ceil((Z-j)/J/2)*J;n(F,ye,j,Z,he),re.push(j,ye,ye,Z)}}return a.prototype.all=function(){return this._all(this.data,[])},a.prototype.search=function(F){var j=this.data,Z=[];if(!O(F,j))return Z;for(var J=this.toBBox,he=[];j;){for(var re=0;re=0&&he[j].children.length>this._maxEntries;)this._split(he,j),j--;this._adjustParentBBoxes(J,he,j)},a.prototype._split=function(F,j){var Z=F[j],J=Z.children.length,he=this._minEntries;this._chooseSplitAxis(Z,he,J);var re=this._chooseSplitIndex(Z,he,J),ye=z(Z.children.splice(re,Z.children.length-re));ye.height=Z.height,ye.leaf=Z.leaf,l(Z,this.toBBox),l(ye,this.toBBox),j?F[j-1].children.push(ye):this._splitRoot(Z,ye)},a.prototype._splitRoot=function(F,j){this.data=z([F,j]),this.data.height=F.height+1,this.data.leaf=!1,l(this.data,this.toBBox)},a.prototype._chooseSplitIndex=function(F,j,Z){for(var J,he,re,ye,ae,Ae,me,Ee=1/0,Qe=1/0,Le=j;Le<=Z-j;Le++){var lt=m(F,0,Le,this.toBBox),Ke=m(F,Le,Z,this.toBBox),it=(he=lt,re=Ke,ye=void 0,ae=void 0,Ae=void 0,me=void 0,ye=Math.max(he.minX,re.minX),ae=Math.max(he.minY,re.minY),Ae=Math.min(he.maxX,re.maxX),me=Math.min(he.maxY,re.maxY),Math.max(0,Ae-ye)*Math.max(0,me-ae)),Rt=T(lt)+T(Ke);it=j;Ee--){var Qe=F.children[Ee];b(ye,F.leaf?he(Qe):Qe),ae+=A(ye)}return ae},a.prototype._adjustParentBBoxes=function(F,j,Z){for(var J=Z;J>=0;J--)b(j[J],F)},a.prototype._condense=function(F){for(var j=F.length-1,Z=void 0;j>=0;j--)F[j].children.length===0?j>0?(Z=F[j-1].children).splice(Z.indexOf(F[j]),1):this.clear():l(F[j],this.toBBox)},a})})(_T);var vB=_T.exports;const bB=J_(rB),xB=J_(mB),wB=J_(NR);var dl=vB,yT=bB,vT=xB,_f=wB.default,SB=vT.featureEach;vT.coordEach;yT.polygon;var oE=yT.featureCollection;function bT(t){var e=new dl(t);return e.insert=function(n){if(n.type!=="Feature")throw new Error("invalid feature");return n.bbox=n.bbox?n.bbox:_f(n),dl.prototype.insert.call(this,n)},e.load=function(n){var r=[];return Array.isArray(n)?n.forEach(function(i){if(i.type!=="Feature")throw new Error("invalid features");i.bbox=i.bbox?i.bbox:_f(i),r.push(i)}):SB(n,function(i){if(i.type!=="Feature")throw new Error("invalid features");i.bbox=i.bbox?i.bbox:_f(i),r.push(i)}),dl.prototype.load.call(this,r)},e.remove=function(n,r){if(n.type!=="Feature")throw new Error("invalid feature");return n.bbox=n.bbox?n.bbox:_f(n),dl.prototype.remove.call(this,n,r)},e.clear=function(){return dl.prototype.clear.call(this)},e.search=function(n){var r=dl.prototype.search.call(this,this.toBBox(n));return oE(r)},e.collides=function(n){return dl.prototype.collides.call(this,this.toBBox(n))},e.all=function(){var n=dl.prototype.all.call(this);return oE(n)},e.toJSON=function(){return dl.prototype.toJSON.call(this)},e.fromJSON=function(n){return dl.prototype.fromJSON.call(this,n)},e.toBBox=function(n){var r;if(n.bbox)r=n.bbox;else if(Array.isArray(n)&&n.length===4)r=n;else if(Array.isArray(n)&&n.length===6)r=[n[0],n[1],n[3],n[4]];else if(n.type==="Feature")r=_f(n);else if(n.type==="FeatureCollection")r=_f(n);else throw new Error("invalid geojson");return{minX:r[0],minY:r[1],maxX:r[2],maxY:r[3]}},e}lb.exports=bT;lb.exports.default=bT;var EB=lb.exports;const IB=l1(EB);function CB(t,e){var n={},r=[];if(t.type==="LineString"&&(t=Ia(t)),e.type==="LineString"&&(e=Ia(e)),t.type==="Feature"&&e.type==="Feature"&&t.geometry!==null&&e.geometry!==null&&t.geometry.type==="LineString"&&e.geometry.type==="LineString"&&t.geometry.coordinates.length===2&&e.geometry.coordinates.length===2){var i=sE(t,e);return i&&r.push(i),sh(r)}var a=IB();return a.load(iE(e)),H_(iE(t),function(c){H_(a.search(c),function(l){var m=sE(c,l);if(m){var b=tp(m).join(",");n[b]||(n[b]=!0,r.push(m))}})}),sh(r)}function sE(t,e){var n=tp(t),r=tp(e);if(n.length!==2)throw new Error(" line1 must only contain 2 coordinates");if(r.length!==2)throw new Error(" line2 must only contain 2 coordinates");var i=n[0][0],a=n[0][1],c=n[1][0],l=n[1][1],m=r[0][0],b=r[0][1],S=r[1][0],E=r[1][1],T=(E-b)*(c-i)-(S-m)*(l-a),A=(S-m)*(a-b)-(E-b)*(i-m),D=(c-i)*(a-b)-(l-a)*(i-m);if(T===0)return null;var O=A/T,z=D/T;if(O>=0&&O<=1&&z>=0&&z<=1){var G=i+O*(c-i),F=a+O*(l-a);return ds([G,F])}return null}function TB(t,e,n){n===void 0&&(n={});var r=ds([1/0,1/0],{dist:1/0}),i=0;return pp(t,function(a){for(var c=tp(a),l=0;l0&&(z=O.features[0],z.properties.dist=bd(e,z,n),z.properties.location=i+bd(m,z,n)),m.properties.dist{if(this.active&&!this.dragFrom)this.recalculateHovering(e);else if(this.active&&this.dragFrom){if(this.hover=="polygon"){let n=this.dragFrom[0]-e.lngLat.lng,r=this.dragFrom[1]-e.lngLat.lat;for(let i of this.points)i[0]-=n,i[1]-=r}else this.points[this.hover]=e.lngLat.toArray();this.dragFrom=e.lngLat.toArray(),this.redraw()}});Ti(this,"onClick",e=>{if(this.beforeUpdate(),this.active&&this.cursor){let n=[];if(aE(this.points).forEach((r,i)=>{n.push([i+1,TB(r,this.cursor).properties.dist])}),n.sort((r,i)=>r[1]-i[1]),n.length>0){let r=n[0][0];this.points.splice(r,0,this.cursor.geometry.coordinates),this.hover=r}else this.points.push(this.cursor.geometry.coordinates),this.hover=this.points.length-1;this.redraw(),this.pointsUpdated()}else this.active&&typeof this.hover=="number"&&(this.points.splice(this.hover,1),this.hover=null,this.redraw(),this.pointsUpdated(),this.recalculateHovering(e))});Ti(this,"onDoubleClick",e=>{this.active&&(e.preventDefault(),this.cursor=ov(e.lngLat.toArray()),this.onClick(e),this.finish())});Ti(this,"onMouseDown",e=>{this.active&&!this.dragFrom&&this.hover!=null&&(e.preventDefault(),this.cursor=null,this.dragFrom=e.lngLat.toArray(),this.beforeUpdate(),this.redraw())});Ti(this,"onMouseUp",()=>{this.active&&this.dragFrom&&(this.dragFrom=null,this.redraw(),this.pointsUpdated())});Ti(this,"onKeypress",e=>{this.active&&(e.key=="Enter"?(e.stopPropagation(),this.finish()):e.key=="z"&&e.ctrlKey&&this.undo())});Ti(this,"onKeyDown",e=>{this.active&&e.key=="Escape"&&(e.stopPropagation(),this.cancel())});this.map=e,this.active=!1,this.eventListenersSuccess=[],this.eventListenersUpdated=[],this.eventListenersFailure=[],this.points=[],this.cursor=null,this.hover=null,this.dragFrom=null,this.previousStates=[],this.map.on("mousemove",this.onMouseMove),this.map.on("click",this.onClick),this.map.on("dblclick",this.onDoubleClick),this.map.on("mousedown",this.onMouseDown),this.map.on("mouseup",this.onMouseUp),document.addEventListener("keypress",this.onKeypress),document.addEventListener("keydown",this.onKeyDown)}tearDown(){this.map.off("mousemove",this.onMouseMove),this.map.off("click",this.onClick),this.map.off("dblclick",this.onDoubleClick),this.map.off("mousedown",this.onMouseDown),this.map.off("mouseup",this.onMouseUp),document.removeEventListener("keypress",this.onKeypress),document.removeEventListener("keydown",this.onKeyDown)}finish(){let e=this.polygonFeature();if(e)for(let n of this.eventListenersSuccess)n(e);else for(let n of this.eventListenersFailure)n();this.stop()}cancel(){for(let e of this.eventListenersFailure)e();this.stop()}addEventListenerSuccess(e){this.eventListenersSuccess.push(e)}addEventListenerUpdated(e){this.eventListenersUpdated.push(e)}addEventListenerFailure(e){this.eventListenersFailure.push(e)}clearEventListeners(){this.eventListenersSuccess=[],this.eventListenersUpdated=[],this.eventListenersFailure=[]}startNew(){this.active=!0,this.map.doubleClickZoom.disable()}editExisting(e){this.active=!0,this.map.doubleClickZoom.disable(),this.points=JSON.parse(JSON.stringify(e.geometry.coordinates[0])),this.points.pop(),this.redraw()}stop(){this.map.doubleClickZoom.enable(),this.points=[],this.cursor=null,this.active=!1,this.hover=null,this.dragFrom=null,this.previousStates=[],this.redraw(),this.map.getCanvas().style.cursor="inherit"}undo(){this.dragFrom!=null||this.previousStates.length==0||(this.points=this.previousStates.pop(),this.hover=null,this.redraw())}redraw(){let e=xT();this.points.forEach((i,a)=>{let c=ov(i);c.properties.hover=this.hover==a,c.properties.idx=a,e.features.push(c)}),e.features=e.features.concat(aE(this.points));let n=this.polygonFeature();n&&(n.properties.hover=this.hover=="polygon",e.features.push(n)),ST.set(e);let r="crosshair";this.hover!=null&&(r=this.dragFrom?"grabbing":"pointer"),this.map.getCanvas().style.cursor=r,ET.set(this.previousStates.length)}pointsUpdated(){let e=this.polygonFeature();if(e)for(let n of this.eventListenersUpdated)n(e)}recalculateHovering(e){this.cursor=null,this.hover=null;for(let n of this.map.queryRenderedFeatures(e.point,{layers:["edit-polygon-fill","edit-polygon-vertices"]}))if(n.geometry.type=="Polygon"){this.hover="polygon";break}else if(n.geometry.type=="Point"&&Object.hasOwn(n.properties,"idx")){this.hover=n.properties.idx;break}this.hover==null&&(this.cursor=ov(e.lngLat.toArray())),this.redraw()}polygonFeature(){if(this.points.length<3)return null;let e=this.points.map(wT),n=[JSON.parse(JSON.stringify(e))];return n[0].push(JSON.parse(JSON.stringify(n[0][0]))),{type:"Feature",geometry:{type:"Polygon",coordinates:n},properties:{}}}beforeUpdate(){this.previousStates.push(JSON.parse(JSON.stringify(this.points))),this.previousStates.length>AB&&this.previousStates.shift()}}function aE(t){let e=[];for(let n=0;n=3&&e.push({type:"Feature",geometry:{type:"LineString",coordinates:[t[t.length-1],t[0]]},properties:{}}),e}function DB(t){let e,n,r;return{c(){e=dt("Undo ("),n=dt(t[1]),r=dt(")")},m(i,a){be(i,e,a),be(i,n,a),be(i,r,a)},p(i,a){a&2&&mr(n,i[1])},d(i){i&&(ve(e),ve(n),ve(r))}}}function RB(t){let e;return{c(){e=dt("Undo")},m(n,r){be(n,e,r)},p:Mt,d(n){n&&ve(e)}}}function NB(t){let e,n,r,i,a,c,l,m,b,S,E;function T(O,z){return O[1]==0?RB:DB}let A=T(t),D=A(t);return{c(){e=de("div"),n=de("button"),n.textContent="Finish",r=$e(),i=de("button"),i.textContent="Cancel",a=$e(),c=de("button"),D.c(),m=$e(),b=de("ul"),b.innerHTML=`
  • Click + the map to add a vertex
  • Click + a vertex to delete it
  • Drag + a vertex or the polygon to move it
  • Press Control+Z + to undo your last change
  • Press Enter + or + double click + to finish
  • Press Escape + to cancel
  • `,c.disabled=l=t[1]==0,nr(e,"display","flex"),nr(e,"justify-content","space-between")},m(O,z){be(O,e,z),se(e,n),se(e,r),se(e,i),se(e,a),se(e,c),D.m(c,null),be(O,m,z),be(O,b,z),S||(E=[Lt(n,"click",t[2]),Lt(i,"click",t[3]),Lt(c,"click",t[4])],S=!0)},p(O,[z]){A===(A=T(O))&&D?D.p(O,z):(D.d(1),D=A(O),D&&(D.c(),D.m(c,null))),z&2&&l!==(l=O[1]==0)&&(c.disabled=l)},i:Mt,o:Mt,d(O){O&&(ve(e),ve(m),ve(b)),D.d(),S=!1,ti(E)}}}function OB(t,e,n){let r;St(t,ET,m=>n(1,r=m));let{polygonTool:i}=e;const a=()=>i.finish(),c=()=>i.cancel(),l=()=>i.undo();return t.$$set=m=>{"polygonTool"in m&&n(0,i=m.polygonTool)},[i,r,a,c,l]}class zB extends nn{constructor(e){super(),tn(this,e,OB,NB,Zt,{polygonTool:0})}}function FB(t){let e,n,r,i,a,c;return e=new oc({props:{id:"edit-polygon-fill",filter:LB,paint:{"fill-color":"red","fill-opacity":["case",["boolean",["get","hover"],"false"],1,.5]}}}),r=new sc({props:{id:"edit-polygon-lines",filter:PB,paint:{"line-color":"black","line-width":8,"line-opacity":.5}}}),a=new mm({props:{id:"edit-polygon-vertices",filter:MB,paint:{"circle-color":"black","circle-opacity":["case",["has","hovered"],1,.5],"circle-radius":10}}}),{c(){We(e.$$.fragment),n=$e(),We(r.$$.fragment),i=$e(),We(a.$$.fragment)},m(l,m){je(e,l,m),be(l,n,m),je(r,l,m),be(l,i,m),je(a,l,m),c=!0},p:Mt,i(l){c||(pe(e.$$.fragment,l),pe(r.$$.fragment,l),pe(a.$$.fragment,l),c=!0)},o(l){xe(e.$$.fragment,l),xe(r.$$.fragment,l),xe(a.$$.fragment,l),c=!1},d(l){l&&(ve(n),ve(i)),qe(e,l),qe(r,l),qe(a,l)}}}function BB(t){let e,n;return e=new Qo({props:{data:t[0],$$slots:{default:[FB]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,[i]){const a={};i&1&&(a.data=r[0]),i&2&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function VB(t,e,n){let r;return St(t,ST,i=>n(0,r=i)),[r]}class UB extends nn{constructor(e){super(),tn(this,e,VB,BB,Zt,{})}}function GB(t){let e,n,r,i,a,c,l;return{c(){e=de("button"),e.textContent="Import current view",n=$e(),r=de("i"),r.textContent="or...",i=$e(),a=de("button"),a.textContent="Draw an area to import on the map",Ie(e,"type","button"),Ie(a,"type","button")},m(m,b){be(m,e,b),be(m,n,b),be(m,r,b),be(m,i,b),be(m,a,b),c||(l=[Lt(e,"click",t[1]),Lt(a,"click",t[2])],c=!0)},p:Mt,i:Mt,o:Mt,d(m){m&&(ve(e),ve(n),ve(r),ve(i),ve(a)),c=!1,ti(l)}}}function jB(t){let e,n;return e=new zB({props:{polygonTool:t[0]}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&1&&(a.polygonTool=r[0]),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function qB(t){let e,n,r,i;const a=[jB,GB],c=[];function l(m,b){return m[0]?0:1}return e=l(t),n=c[e]=a[e](t),{c(){n.c(),r=zo()},m(m,b){c[e].m(m,b),be(m,r,b),i=!0},p(m,[b]){let S=e;e=l(m),e===S?c[e].p(m,b):(qn(),xe(c[S],1,1,()=>{c[S]=null}),$n(),n=c[e],n?n.p(m,b):(n=c[e]=a[e](m),n.c()),pe(n,1),n.m(r.parentNode,r))},i(m){i||(pe(n),i=!0)},o(m){xe(n),i=!1},d(m){m&&ve(r),c[e].d(m)}}}function xd(t){return[t.lng,t.lat]}function $B(t,e,n){let{map:r}=e;const i=ic();let a=null;async function c(S){try{i("loading","Loading from Overpass");let T=await(await fetch(IT(S))).text();i("gotXml",T)}catch(E){i("error",E.toString())}}function l(){let S=r.getBounds();return{type:"Feature",properties:{},geometry:{coordinates:[[xd(S.getSouthWest()),xd(S.getNorthWest()),xd(S.getNorthEast()),xd(S.getSouthEast()),xd(S.getSouthWest())]],type:"Polygon"}}}async function m(){if(r){if(r.getZoom()<13){i("error","Zoom in more to import");return}await c(l())}}function b(){r&&(n(0,a=new kB(r)),a.startNew(),a.addEventListenerSuccess(async S=>{n(0,a=null),await c(S)}),a.addEventListenerFailure(()=>{n(0,a=null)}))}return t.$$set=S=>{"map"in S&&n(3,r=S.map)},[a,m,b,r]}class WB extends nn{constructor(e){super(),tn(this,e,$B,qB,Zt,{map:3})}}function IT(t){let e='poly:"';for(let[r,i]of t.geometry.coordinates[0])e+=`${i} ${r} `;return e=e.slice(0,-1)+'"',`https://overpass-api.de/api/interpreter?data=${`(nwr(${e}); node(w)->.x; <;); out meta;`}`}async function o1(t){Zu.set(t);try{let e=JSON.parse(window.localStorage.getItem(t));console.time("get OSM input");let n=await ZB(e);console.timeEnd("get OSM input"),console.time("load"),to.set(new ME(new Uint8Array(n),e.study_area_name||void 0)),Va(to).loadSavefile(e),console.timeEnd("load"),CT()}catch(e){window.alert(`Couldn't open project: ${e}`),Zu.set("")}}async function ZB(t){if(t.study_area_name){let e=Va(c_)?`/osm/${t.study_area_name}.pbf`:`https://assets.od2net.org/severance_pbfs/${t.study_area_name}.pbf`;return console.log(`Grabbing ${e}`),await(await fetch(e)).arrayBuffer()}else{console.log("Grabbing from Overpass");let e=t.features.find(i=>i.properties.kind=="study_area_boundary");return await(await fetch(IT(e))).arrayBuffer()}}function CT(){An.set({mode:"network"}),f_.set(new iM(Va(au),Va(to).toRouteSnapper(),lT,x6,uT)),Va(au).fitBounds(Array.from(Va(to).getBounds()),{animate:!1}),gv.set(lE()),_v.set(lE())}function lE(){let t=Va(to).getBounds(),e=t[0]+Math.random()*(t[2]-t[0]),n=t[1]+Math.random()*(t[3]-t[1]);return new Q_.LngLat(e,n)}function uE(t,e,n){const r=t.slice();return r[19]=e[n],r}function HB(t){let e;return{c(){e=de("div"),e.innerHTML='',Ie(e,"slot","top")},m(n,r){be(n,e,r)},p:Mt,d(n){n&&ve(e)}}}function XB(t){let e;return{c(){e=de("p"),e.textContent="Waiting for MapLibre and WASM to load..."},m(n,r){be(n,e,r)},p:Mt,i:Mt,o:Mt,d(n){n&&ve(e)}}}function YB(t){let e,n,r,i,a,c,l,m,b,S,E,T,A;n=new dr({props:{$$slots:{default:[KB]},$$scope:{ctx:t}}}),n.$on("click",t[11]);let D=vs(t[2]),O=[];for(let G=0;Gxe(O[G],1,1,()=>{O[G]=null});return{c(){e=de("div"),We(n.$$.fragment),r=$e(),i=de("p"),i.textContent="Load a saved project:",a=$e(),c=de("ul");for(let G=0;G{c[S]=null}),$n(),r=c[n],r?r.p(m,b):(r=c[n]=a[n](m),r.c()),pe(r,1),r.m(e,null))},i(m){i||(pe(r),i=!0)},o(m){xe(r),i=!1},d(m){m&&ve(e),c[n].d()}}}function e8(t){let e,n,r,i;return e=new TE({props:{loading:t[1]}}),r=new fc({props:{$$slots:{sidebar:[QB],top:[HB]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment),n=$e(),We(r.$$.fragment)},m(a,c){je(e,a,c),be(a,n,c),je(r,a,c),i=!0},p(a,[c]){const l={};c&2&&(l.loading=a[1]),e.$set(l);const m={};c&4194429&&(m.$$scope={dirty:c,ctx:a}),r.$set(m)},i(a){i||(pe(e.$$.fragment,a),pe(r.$$.fragment,a),i=!0)},o(a){xe(e.$$.fragment,a),xe(r.$$.fragment,a),i=!1},d(a){a&&ve(n),qe(e,a),qe(r,a)}}}function $g(){let t=[];for(let e=0;en(16,r=he)),St(t,f_,he=>n(17,i=he)),St(t,to,he=>n(18,a=he)),St(t,au,he=>n(4,c=he)),St(t,An,he=>n(5,l=he)),St(t,$d,he=>n(6,m=he));let{wasmReady:b}=e,S="";Kt(to,a=null,a),Kt(f_,i=null,i),Kt(Zu,r="",r);let E=$g(),T;async function A(he){let re="ltn_"+T.files[0].name;n(1,S=`Loading from file ${re}`),window.localStorage.setItem(re,await T.files[0].text()),n(2,E=$g()),await o1(re),n(1,S="")}function D(he){window.confirm(`Really delete project ${he}? You can't undo this.`)&&(window.localStorage.removeItem(he),n(2,E=$g()))}function O(he){let re=window.prompt(`Rename project ${he} to what?`,he);if(re){re.startsWith("ltn_")||(re=`ltn_${re}`);let ye=window.localStorage.getItem(he);window.localStorage.setItem(re,ye),window.localStorage.removeItem(he),n(2,E=$g())}}async function z(he){n(1,S=`Loading project ${he}`),await o1(he),n(1,S="")}const G=()=>Kt(An,l={mode:"new-project"},l),F=he=>z(he),j=he=>O(he),Z=he=>D(he);function J(he){Vi[he?"unshift":"push"](()=>{T=he,n(3,T)})}return t.$$set=he=>{"wasmReady"in he&&n(0,b=he.wasmReady)},[b,S,E,T,c,l,m,A,D,O,z,G,F,j,Z,J]}class n8 extends nn{constructor(e){super(),tn(this,e,t8,e8,Zt,{wasmReady:0})}}function hE(t,e,n){const r=t.slice();return r[17]=e[n][0],r[18]=e[n][1],r}function fE(t,e,n){const r=t.slice();return r[21]=e[n][0],r[22]=e[n][1],r}function r8(t){let e;return{c(){e=dt("Choose project")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function i8(t){let e,n,r,i,a,c,l,m;return a=new dr({props:{$$slots:{default:[r8]},$$scope:{ctx:t}}}),a.$on("click",t[13]),{c(){e=de("div"),n=de("nav"),r=de("ul"),i=de("li"),We(a.$$.fragment),c=$e(),l=de("li"),l.textContent="New project",Ie(n,"aria-label","breadcrumb"),Ie(e,"slot","top")},m(b,S){be(b,e,S),se(e,n),se(n,r),se(r,i),je(a,i,null),se(r,c),se(r,l),m=!0},p(b,S){const E={};S&33554432&&(E.$$scope={dirty:S,ctx:b}),a.$set(E)},i(b){m||(pe(a.$$.fragment,b),m=!0)},o(b){xe(a.$$.fragment,b),m=!1},d(b){b&&ve(e),qe(a)}}}function pE(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D;e=new TE({props:{loading:t[4]}});let O=vs(t[3]),z=[];for(let G=0;Gt[9].call(a))},m(G,F){je(e,G,F),be(G,n,F),be(G,r,F),se(r,i),se(r,a),se(a,c);for(let j=0;j{S=null}),$n())},i(E){l||(pe(S),l=!0)},o(E){xe(S),l=!1},d(E){E&&ve(e),S&&S.d(),m=!1,b()}}}function s8(t){let e,n,r;return n=new UB({}),{c(){e=de("div"),We(n.$$.fragment),Ie(e,"slot","map")},m(i,a){be(i,e,a),je(n,e,null),r=!0},p:Mt,i(i){r||(pe(n.$$.fragment,i),r=!0)},o(i){xe(n.$$.fragment,i),r=!1},d(i){i&&ve(e),qe(n)}}}function a8(t){let e,n;return e=new fc({props:{$$slots:{map:[s8],sidebar:[o8],top:[i8]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,[i]){const a={};i&33554558&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function l8(t,e,n){let r,i,a,c,l;St(t,Zu,Z=>n(14,r=Z)),St(t,to,Z=>n(15,i=Z)),St(t,c_,Z=>n(16,a=Z)),St(t,au,Z=>n(5,c=Z)),St(t,An,Z=>n(6,l=Z));let m="",b="",S=[],E="";Y_(async()=>{let Z=await fetch(a?"/osm/areas.json":"https://assets.od2net.org/severance_pbfs/areas.json");n(3,S=await Z.json())});function T(Z){n(4,E="Loading OSM");try{Kt(to,i=new ME(new TextEncoder().encode(Z.detail),void 0),i),Kt(Zu,r=`ltn_${m}`,r),CT(),Wd()}catch(J){window.alert(`Couldn't import from Overpass: ${J}`)}n(4,E="")}async function A(){if(b=="")return;let Z=`ltn_${m}`;window.localStorage.setItem(Z,JSON.stringify({type:"FeatureCollection",features:[],study_area_name:b})),n(4,E=`Loading pre-clipped OSM area ${b}`),await o1(Z),n(4,E="")}function D(){m=this.value,n(1,m)}function O(){b=xE(this),n(2,b),n(3,S)}return[A,m,b,S,E,c,l,T,D,O,()=>A(),Z=>n(4,E=Z.detail),Z=>window.alert(Z.detail),()=>Kt(An,l={mode:"title"},l)]}class u8 extends nn{constructor(e){super(),tn(this,e,l8,a8,Zt,{loadExample:0})}get loadExample(){return this.$$.ctx[0]}}const{window:c8}=s1;function h8(t){let e;return{c(){e=dt("Choose project")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function f8(t){let e;return{c(){e=dt("Pick neighbourhood")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function p8(t){let e;return{c(){e=dt("Editing")},m(n,r){be(n,e,r)},d(n){n&&ve(e)}}}function d8(t){let e,n,r,i,a,c,l,m,b,S,E,T,A,D;return a=new dr({props:{$$slots:{default:[h8]},$$scope:{ctx:t}}}),a.$on("click",t[9]),m=new dr({props:{$$slots:{default:[f8]},$$scope:{ctx:t}}}),m.$on("click",t[10]),E=new dr({props:{$$slots:{default:[p8]},$$scope:{ctx:t}}}),E.$on("click",t[5]),{c(){e=de("div"),n=de("nav"),r=de("ul"),i=de("li"),We(a.$$.fragment),c=$e(),l=de("li"),We(m.$$.fragment),b=$e(),S=de("li"),We(E.$$.fragment),T=$e(),A=de("li"),A.textContent="Viewing shortcuts",Ie(n,"aria-label","breadcrumb"),Ie(e,"slot","top")},m(O,z){be(O,e,z),se(e,n),se(n,r),se(r,i),je(a,i,null),se(r,c),se(r,l),je(m,l,null),se(r,b),se(r,S),je(E,S,null),se(r,T),se(r,A),D=!0},p(O,z){const G={};z&8192&&(G.$$scope={dirty:z,ctx:O}),a.$set(G);const F={};z&8192&&(F.$$scope={dirty:z,ctx:O}),m.$set(F);const j={};z&8192&&(j.$$scope={dirty:z,ctx:O}),E.$set(j)},i(O){D||(pe(a.$$.fragment,O),pe(m.$$.fragment,O),pe(E.$$.fragment,O),D=!0)},o(O){xe(a.$$.fragment,O),xe(m.$$.fragment,O),xe(E.$$.fragment,O),D=!1},d(O){O&&ve(e),qe(a),qe(m),qe(E)}}}function m8(t){let e,n,r,i,a,c,l,m,b,S=t[0].shortcutIndex+1+"",E,T,A=t[0].gj.features.length+"",D,O,z,G,F,j,Z,J,he,re=Mr(t[0].gj.features[t[0].shortcutIndex].properties).directness.toFixed(1)+"",ye,ae,Ae,me,Ee;return{c(){e=de("p"),e.textContent=`This shows all possible shortcuts crossing the blue road you've chosen. + A shortcut is defined as a route starting and ending outside the + neighbourhood, but cutting through it. It might not actually be + considered a "good shortcut" in practice -- this tool doesn't know any + real traffic patterns; it's just looking for any possible path. This + view lets you understand the limits of this assumption.`,n=$e(),r=de("button"),r.textContent="Pick a different road",i=$e(),a=de("div"),c=de("button"),l=dt("Previous"),b=$e(),E=dt(S),T=dt(" / "),D=dt(A),O=$e(),z=de("button"),G=dt("Next"),j=$e(),Z=de("p"),J=dt("This shortcut is "),he=de("b"),ye=dt(re),ae=dt("x"),Ae=dt(` + the length of the shortest route using all roads, not just this neighbourhood`),c.disabled=m=t[0].shortcutIndex==0,Ie(c,"data-tooltip","Left"),z.disabled=F=t[0].shortcutIndex==t[0].gj.features.length-1,Ie(z,"data-tooltip","Right"),nr(a,"display","flex"),nr(a,"justify-content","space-between")},m(Qe,Le){be(Qe,e,Le),be(Qe,n,Le),be(Qe,r,Le),be(Qe,i,Le),be(Qe,a,Le),se(a,c),se(c,l),se(a,b),se(a,E),se(a,T),se(a,D),se(a,O),se(a,z),se(z,G),be(Qe,j,Le),be(Qe,Z,Le),se(Z,J),se(Z,he),se(he,ye),se(he,ae),se(Z,Ae),me||(Ee=[Lt(r,"click",t[8]),Lt(c,"click",t[6]),Lt(z,"click",t[7])],me=!0)},p(Qe,Le){Le&1&&m!==(m=Qe[0].shortcutIndex==0)&&(c.disabled=m),Le&1&&S!==(S=Qe[0].shortcutIndex+1+"")&&mr(E,S),Le&1&&A!==(A=Qe[0].gj.features.length+"")&&mr(D,A),Le&1&&F!==(F=Qe[0].shortcutIndex==Qe[0].gj.features.length-1)&&(z.disabled=F),Le&1&&re!==(re=Mr(Qe[0].gj.features[Qe[0].shortcutIndex].properties).directness.toFixed(1)+"")&&mr(ye,re)},d(Qe){Qe&&(ve(e),ve(n),ve(r),ve(i),ve(a),ve(j),ve(Z)),me=!1,ti(Ee)}}}function g8(t){let e;return{c(){e=de("p"),e.textContent="Click a road to see shortcuts"},m(n,r){be(n,e,r)},p:Mt,d(n){n&&ve(e)}}}function _8(t){let e,n,r,i;n=new J1({}),n.$on("click",t[5]);function a(m,b){if(m[0].state=="neutral")return g8;if(m[0].state=="chose-road")return m8}let c=a(t),l=c&&c(t);return{c(){e=de("div"),We(n.$$.fragment),r=$e(),l&&l.c(),Ie(e,"slot","sidebar")},m(m,b){be(m,e,b),je(n,e,null),se(e,r),l&&l.m(e,null),i=!0},p(m,b){c===(c=a(m))&&l?l.p(m,b):(l&&l.d(1),l=c&&c(m),l&&(l.c(),l.m(e,null)))},i(m){i||(pe(n.$$.fragment,m),i=!0)},o(m){xe(n.$$.fragment,m),i=!1},d(m){m&&ve(e),qe(n),l&&l.d()}}}function y8(t){let e,n,r,i,a,c;return e=new Qo({props:{data:n1(JSON.parse(Mr(t[2]).renderNeighbourhood())),$$slots:{default:[b8]},$$scope:{ctx:t}}}),r=new Qo({props:{data:t[0].gj.features[t[0].shortcutIndex],$$slots:{default:[x8]},$$scope:{ctx:t}}}),a=new Qo({props:{data:t[0].roadGj,$$slots:{default:[w8]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment),n=$e(),We(r.$$.fragment),i=$e(),We(a.$$.fragment)},m(l,m){je(e,l,m),be(l,n,m),je(r,l,m),be(l,i,m),je(a,l,m),c=!0},p(l,m){const b={};m&4&&(b.data=n1(JSON.parse(Mr(l[2]).renderNeighbourhood()))),m&8192&&(b.$$scope={dirty:m,ctx:l}),e.$set(b);const S={};m&1&&(S.data=l[0].gj.features[l[0].shortcutIndex]),m&8192&&(S.$$scope={dirty:m,ctx:l}),r.$set(S);const E={};m&1&&(E.data=l[0].roadGj),m&8192&&(E.$$scope={dirty:m,ctx:l}),a.$set(E)},i(l){c||(pe(e.$$.fragment,l),pe(r.$$.fragment,l),pe(a.$$.fragment,l),c=!0)},o(l){xe(e.$$.fragment,l),xe(r.$$.fragment,l),xe(a.$$.fragment,l),c=!1},d(l){l&&(ve(n),ve(i)),qe(e,l),qe(r,l),qe(a,l)}}}function v8(t){let e,n;return e=new by({props:{gjInput:JSON.parse(Mr(t[2]).renderNeighbourhood()),onClickLine:t[3],$$slots:{"line-popup":[E8]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&4&&(a.gjInput=JSON.parse(Mr(r[2]).renderNeighbourhood())),i&8192&&(a.$$scope={dirty:i,ctx:r}),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function b8(t){let e,n;const r=[Ui("cells"),{filter:["==",["get","kind"],"cell"]},{paint:{"fill-color":["get","color"],"fill-opacity":.3}}];let i={};for(let a=0;a({12:i}),({props:i})=>i?4096:0]},$$scope:{ctx:t}}}),{c(){e=de("div"),We(n.$$.fragment),Ie(e,"slot","line-popup")},m(i,a){be(i,e,a),je(n,e,null),r=!0},p(i,a){const c={};a&12288&&(c.$$scope={dirty:a,ctx:i}),n.$set(c)},i(i){r||(pe(n.$$.fragment,i),r=!0)},o(i){xe(n.$$.fragment,i),r=!1},d(i){i&&ve(e),qe(n)}}}function I8(t){let e,n,r,i,a,c;const l=[v8,y8],m=[];function b(S,E){return S[0].state=="neutral"?0:S[0].state=="chose-road"?1:-1}return~(n=b(t))&&(r=m[n]=l[n](t)),a=new xy({}),{c(){e=de("div"),r&&r.c(),i=$e(),We(a.$$.fragment),Ie(e,"slot","map")},m(S,E){be(S,e,E),~n&&m[n].m(e,null),se(e,i),je(a,e,null),c=!0},p(S,E){let T=n;n=b(S),n===T?~n&&m[n].p(S,E):(r&&(qn(),xe(m[T],1,1,()=>{m[T]=null}),$n()),~n?(r=m[n],r?r.p(S,E):(r=m[n]=l[n](S),r.c()),pe(r,1),r.m(e,i)):r=null)},i(S){c||(pe(r),pe(a.$$.fragment,S),c=!0)},o(S){xe(r),xe(a.$$.fragment,S),c=!1},d(S){S&&ve(e),~n&&m[n].d(),qe(a)}}}function C8(t){let e,n,r,i;return e=new fc({props:{$$slots:{map:[I8],sidebar:[_8],top:[d8]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment)},m(a,c){je(e,a,c),n=!0,r||(i=Lt(c8,"keydown",t[4]),r=!0)},p(a,[c]){const l={};c&8199&&(l.$$scope={dirty:c,ctx:a}),e.$set(l)},i(a){n||(pe(e.$$.fragment,a),n=!0)},o(a){xe(e.$$.fragment,a),n=!1},d(a){qe(e,a),r=!1,i()}}}function T8(t,e,n){let r,i,a;St(t,An,O=>n(1,r=O)),St(t,au,O=>n(11,i=O)),St(t,to,O=>n(2,a=O));let c={state:"neutral"};function l(O,z){let G=JSON.parse(a.getShortcutsCrossingRoad(O.properties.id));if(G.features.length==0){window.alert("No shortcuts here");return}n(0,c={state:"chose-road",roadGj:O,gj:G,shortcutIndex:0})}Y_(()=>{i==null||i.keyboard.disable()}),ys(()=>{i==null||i.keyboard.enable()});function m(O){c.state=="chose-road"&&(O.key=="ArrowLeft"&&c.shortcutIndex>0&&(O.stopPropagation(),n(0,c.shortcutIndex--,c)),O.key=="ArrowRight"&&(O.stopPropagation(),c.shortcutIndex!=c.gj.features.length-1&&n(0,c.shortcutIndex++,c)))}function b(){Kt(An,r={mode:"neighbourhood"},r)}function S(){c.state=="chose-road"&&n(0,c.shortcutIndex--,c)}function E(){c.state=="chose-road"&&n(0,c.shortcutIndex++,c)}return[c,r,a,l,m,b,S,E,()=>n(0,c={state:"neutral"}),()=>Kt(An,r={mode:"title"},r),()=>Kt(An,r={mode:"network"},r)]}class L8 extends nn{constructor(e){super(),tn(this,e,T8,C8,Zt,{})}}function P8(t){let e,n,r,i,a,c,l,m,b,S,E;return c=new b6({}),{c(){e=de("div"),n=de("button"),r=de("img"),a=$e(),We(c.$$.fragment),l=$e(),m=de("span"),Vn(r.src,i=t[10]?Zx:Hx)||Ie(r,"src",i),nr(r,"height","6vh"),Ie(r,"alt","A/B Street logo"),Ie(n,"class","outline"),nr(m,"width","100%"),Ie(e,"slot","top"),nr(e,"display","flex")},m(T,A){be(T,e,A),se(e,n),se(n,r),se(e,a),je(c,e,null),se(e,l),se(e,m),t[20](m),b=!0,S||(E=Lt(n,"click",t[19]),S=!0)},p(T,A){(!b||A&1024&&!Vn(r.src,i=T[10]?Zx:Hx))&&Ie(r,"src",i)},i(T){b||(pe(c.$$.fragment,T),b=!0)},o(T){xe(c.$$.fragment,T),b=!1},d(T){T&&ve(e),qe(c),t[20](null),S=!1,E()}}}function gE(t){let e,n,r,i,a,c;return r=new W5({props:{map:Mr(t[6]),maptilerBasemap:t[7]}}),{c(){e=de("button"),e.textContent="Zoom to fit study area",n=$e(),We(r.$$.fragment),Ie(e,"class","secondary")},m(l,m){be(l,e,m),be(l,n,m),je(r,l,m),i=!0,a||(c=Lt(e,"click",t[11]),a=!0)},p(l,m){const b={};m&64&&(b.map=Mr(l[6])),m&128&&(b.maptilerBasemap=l[7]),r.$set(b)},i(l){i||(pe(r.$$.fragment,l),i=!0)},o(l){xe(r.$$.fragment,l),i=!1},d(l){l&&(ve(e),ve(n)),qe(r,l),a=!1,c()}}}function M8(t){let e,n,r,i,a,c,l=t[5]&&gE(t);return{c(){e=de("div"),n=de("div"),r=$e(),i=de("hr"),a=$e(),l&&l.c(),Ie(e,"slot","left")},m(m,b){be(m,e,b),se(e,n),t[18](n),se(e,r),se(e,i),se(e,a),l&&l.m(e,null),c=!0},p(m,b){m[5]?l?(l.p(m,b),b&32&&pe(l,1)):(l=gE(m),l.c(),pe(l,1),l.m(e,null)):l&&(qn(),xe(l,1,1,()=>{l=null}),$n())},i(m){c||(pe(l),c=!0)},o(m){xe(l),c=!1},d(m){m&&ve(e),t[18](null),l&&l.d()}}}function A8(t){let e,n;return e=new u8({}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p:Mt,i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function k8(t){let e,n;return e=new n8({props:{wasmReady:t[4]}}),{c(){We(e.$$.fragment)},m(r,i){je(e,r,i),n=!0},p(r,i){const a={};i&16&&(a.wasmReady=r[4]),e.$set(a)},i(r){n||(pe(e.$$.fragment,r),n=!0)},o(r){xe(e.$$.fragment,r),n=!1},d(r){qe(e,r)}}}function _E(t){let e,n,r,i,a,c;e=new Qo({props:{data:JSON.parse(t[5].getInvertedBoundary()),$$slots:{default:[D8]},$$scope:{ctx:t}}});const l=[B8,F8,z8,O8,N8,R8],m=[];function b(S,E){return S[8].mode=="network"?0:S[8].mode=="set-boundary"?1:S[8].mode=="neighbourhood"?2:S[8].mode=="view-shortcuts"?3:S[8].mode=="route"?4:S[8].mode=="debug"?5:-1}return~(r=b(t))&&(i=m[r]=l[r](t)),{c(){We(e.$$.fragment),n=$e(),i&&i.c(),a=zo()},m(S,E){je(e,S,E),be(S,n,E),~r&&m[r].m(S,E),be(S,a,E),c=!0},p(S,E){const T={};E&32&&(T.data=JSON.parse(S[5].getInvertedBoundary())),E&4194304&&(T.$$scope={dirty:E,ctx:S}),e.$set(T);let A=r;r=b(S),r===A?~r&&m[r].p(S,E):(i&&(qn(),xe(m[A],1,1,()=>{m[A]=null}),$n()),~r?(i=m[r],i?i.p(S,E):(i=m[r]=l[r](S),i.c()),pe(i,1),i.m(a.parentNode,a)):i=null)},i(S){c||(pe(e.$$.fragment,S),pe(i),c=!0)},o(S){xe(e.$$.fragment,S),xe(i),c=!1},d(S){S&&(ve(n),ve(a)),qe(e,S),~r&&m[r].d(S)}}}function D8(t){let e,n;const r=[Ui("boundary"),{paint:{"fill-color":"black","fill-opacity":.3}}];let i={};for(let a=0;a{T[F]=null}),$n()),~a?(c=T[a],c?c.p(O,z):(c=T[a]=E[a](O),c.c()),pe(c,1),c.m(l.parentNode,l)):c=null),O[5]?D?(D.p(O,z),z&32&&pe(D,1)):(D=_E(O),D.c(),pe(D,1),D.m(m.parentNode,m)):D&&(qn(),xe(D,1,1,()=>{D=null}),$n())},i(O){S||(pe(e.$$.fragment,O),pe(c),pe(D),pe(b.$$.fragment,O),S=!0)},o(O){xe(e.$$.fragment,O),xe(c),xe(D),xe(b.$$.fragment,O),S=!1},d(O){O&&(ve(n),ve(r),ve(i),ve(l),ve(m)),qe(e,O),t[15](null),~a&&T[a].d(O),D&&D.d(O),qe(b,O)}}}function U8(t){let e,n,r,i;function a(l){t[16](l)}let c={style:`https://api.maptiler.com/maps/${t[7]}/style.json?key=${hv}`,standardControls:!0,hash:!0,images:[{id:"walk_cycle_only",url:"/ltn//filters/walk_cycle_only_icon.gif"},{id:"no_entry",url:"/ltn//filters/no_entry_icon.gif"},{id:"bus_gate",url:"/ltn//filters/bus_gate_icon.gif"},{id:"school_street",url:"/ltn//filters/school_street_icon.gif"},{id:"oneway-arrow",url:uM}],$$slots:{default:[V8]},$$scope:{ctx:t}};return t[0]!==void 0&&(c.map=t[0]),n=new KM({props:c}),Vi.push(()=>Wc(n,"map",a)),n.$on("error",t[17]),{c(){e=de("div"),We(n.$$.fragment),Ie(e,"slot","main"),nr(e,"position","relative"),nr(e,"width","100%"),nr(e,"height","100%")},m(l,m){be(l,e,m),je(n,e,null),i=!0},p(l,m){const b={};m&128&&(b.style=`https://api.maptiler.com/maps/${l[7]}/style.json?key=${hv}`),m&4194617&&(b.$$scope={dirty:m,ctx:l}),!r&&m&1&&(r=!0,b.map=l[0],$c(()=>r=!1)),n.$set(b)},i(l){i||(pe(n.$$.fragment,l),i=!0)},o(l){xe(n.$$.fragment,l),i=!1},d(l){l&&ve(e),qe(n)}}}function G8(t){let e,n,r,i;return e=new lM({}),r=new k5({props:{$$slots:{main:[U8],left:[M8],top:[P8]},$$scope:{ctx:t}}}),{c(){We(e.$$.fragment),n=$e(),We(r.$$.fragment)},m(a,c){je(e,a,c),be(a,n,c),je(r,a,c),i=!0},p(a,[c]){const l={};c&4196351&&(l.$$scope={dirty:c,ctx:a}),r.$set(l)},i(a){i||(pe(e.$$.fragment,a),pe(r.$$.fragment,a),i=!0)},o(a){xe(e.$$.fragment,a),xe(r.$$.fragment,a),i=!1},d(a){a&&ve(n),qe(e,a),qe(r,a)}}}function j8(t,e,n){let r,i,a,c,l,m,b,S,E,T;St(t,mv,ae=>n(12,r=ae)),St(t,dv,ae=>n(13,i=ae)),St(t,pv,ae=>n(14,a=ae)),St(t,to,ae=>n(5,c=ae)),St(t,au,ae=>n(6,l=ae)),St(t,c_,ae=>n(21,m=ae)),St(t,fv,ae=>n(7,b=ae)),St(t,An,ae=>n(8,S=ae)),St(t,h_,ae=>n(9,E=ae)),St(t,$d,ae=>n(10,T=ae));let A=!1;Y_(async()=>{await AE(),await NE(),n(4,A=!0);try{(await fetch("/osm/areas.json")).ok&&(Kt(c_,m=!0,m),console.log("Using local cache, not od2net.org"))}catch{}});let D;function O(){l.fitBounds(Array.from(c.getBounds()),{animate:!1})}let z,G,F;function j(ae){Vi[ae?"unshift":"push"](()=>{F=ae,n(3,F),n(12,r)})}function Z(ae){D=ae,n(0,D)}const J=ae=>{console.log(ae.detail.error)};function he(ae){Vi[ae?"unshift":"push"](()=>{G=ae,n(2,G),n(13,i)})}const re=()=>Kt(h_,E=!0,E);function ye(ae){Vi[ae?"unshift":"push"](()=>{z=ae,n(1,z),n(14,a)})}return t.$$.update=()=>{t.$$.dirty&1&&D&&au.set(D),t.$$.dirty&16386&&z&&a&&(n(1,z.innerHTML="",z),z.appendChild(a)),t.$$.dirty&8196&&G&&i&&(n(2,G.innerHTML="",G),G.appendChild(i)),t.$$.dirty&4104&&F&&r&&(n(3,F.innerHTML="",F),F.appendChild(r))},[D,z,G,F,A,c,l,b,S,E,T,O,r,i,a,j,Z,J,he,re,ye]}class q8 extends nn{constructor(e){super(),tn(this,e,j8,G8,Zt,{})}}new q8({target:document.getElementById("app")}); diff --git a/assets/main-788edba2.js b/assets/main-788edba2.js deleted file mode 100644 index 78afa98..0000000 --- a/assets/main-788edba2.js +++ /dev/null @@ -1,662 +0,0 @@ -var BS=Object.defineProperty;var VS=(e,t,n)=>t in e?BS(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Ir=(e,t,n)=>(VS(e,typeof t!="symbol"?t+"":t,n),n);(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))i(r);new MutationObserver(r=>{for(const a of r)if(a.type==="childList")for(const h of a.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&i(h)}).observe(document,{childList:!0,subtree:!0});function n(r){const a={};return r.integrity&&(a.integrity=r.integrity),r.referrerPolicy&&(a.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?a.credentials="include":r.crossOrigin==="anonymous"?a.credentials="omit":a.credentials="same-origin",a}function i(r){if(r.ep)return;r.ep=!0;const a=n(r);fetch(r.href,a)}})();function Pe(){}function Lr(e,t){for(const n in t)e[n]=t[n];return e}function rx(e){return e()}function Xv(){return Object.create(null)}function Ji(e){e.forEach(rx)}function wg(e){return typeof e=="function"}function He(e,t){return e!=e?t==t:e!==t||e&&typeof e=="object"||typeof e=="function"}let Pm;function Bn(e,t){return e===t?!0:(Pm||(Pm=document.createElement("a")),Pm.href=t,e===Pm.href)}function US(e){return Object.keys(e).length===0}function ox(e,...t){if(e==null){for(const i of t)i(void 0);return Pe}const n=e.subscribe(...t);return n.unsubscribe?()=>n.unsubscribe():n}function Ma(e){let t;return ox(e,n=>t=n)(),t}function Se(e,t,n){e.$$.on_destroy.push(ox(t,n))}function sr(e,t,n,i){if(e){const r=sx(e,t,n,i);return e[0](r)}}function sx(e,t,n,i){return e[1]&&i?Lr(n.ctx.slice(),e[1](i(t))):n.ctx}function ar(e,t,n,i){if(e[2]&&i){const r=e[2](i(n));if(t.dirty===void 0)return r;if(typeof r=="object"){const a=[],h=Math.max(t.dirty.length,r.length);for(let u=0;u32){const t=[],n=e.ctx.length/32;for(let i=0;ie.removeEventListener(t,n,i)}function jS(e){return function(t){return t.preventDefault(),e.call(this,t)}}function It(e,t,n){n==null?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function qS(e){let t;return{p(...n){t=n,t.forEach(i=>e.push(i))},r(){t.forEach(n=>e.splice(e.indexOf(n),1))}}}function ZS(e){return e===""?null:+e}function WS(e){return Array.from(e.childNodes)}function fi(e,t){t=""+t,e.data!==t&&(e.data=t)}function Ho(e,t){e.value=t??""}function ei(e,t,n,i){n==null?e.style.removeProperty(t):e.style.setProperty(t,n,i?"important":"")}function Ym(e,t,n){for(let i=0;i{const r=e.$$.callbacks[t];if(r){const a=HS(t,n,{cancelable:i});return r.slice().forEach(h=>{h.call(e,a)}),!a.defaultPrevented}return!0}}function lx(e,t){return dd().$$.context.set(e,t),t}function XS(e){return dd().$$.context.get(e)}function ii(e,t){const n=e.$$.callbacks[t.type];n&&n.slice().forEach(i=>i.call(this,t))}const Vh=[],zr=[];let Zh=[];const ay=[],ux=Promise.resolve();let ly=!1;function cx(){ly||(ly=!0,ux.then(hx))}function $S(){return cx(),ux}function Hp(e){Zh.push(e)}function yc(e){ay.push(e)}const Y_=new Set;let Oh=0;function hx(){if(Oh!==0)return;const e=Wp;do{try{for(;Ohe.indexOf(i)===-1?t.push(i):n.push(i)),n.forEach(i=>i()),Zh=t}const Gm=new Set;let _c;function jn(){_c={r:0,c:[],p:_c}}function qn(){_c.r||Ji(_c.c),_c=_c.p}function ft(e,t){e&&e.i&&(Gm.delete(e),e.i(t))}function bt(e,t,n,i){if(e&&e.o){if(Gm.has(e))return;Gm.add(e),_c.c.push(()=>{Gm.delete(e),i&&(n&&e.d(1),i())}),e.o(t)}else i&&i()}function ps(e){return(e==null?void 0:e.length)!==void 0?e:Array.from(e)}function JS(e,t){bt(e,1,1,()=>{t.delete(e.key)})}function QS(e,t,n,i,r,a,h,u,_,w,S,E){let M=e.length,A=a.length,D=M;const O={};for(;D--;)O[e[D].key]=D;const F=[],G=new Map,V=new Map,Z=[];for(D=A;D--;){const st=E(r,a,D),St=n(st);let ut=h.get(St);ut?i&&Z.push(()=>ut.p(st,t)):(ut=w(St,st),ut.c()),G.set(St,F[D]=ut),St in O&&V.set(St,Math.abs(D-O[St]))}const $=new Set,Q=new Set;function pt(st){ft(st,1),st.m(u,S),h.set(st.key,st),S=st.first,A--}for(;M&&A;){const st=F[A-1],St=e[M-1],ut=st.key,kt=St.key;st===St?(S=st.first,M--,A--):G.has(kt)?!h.has(ut)||$.has(ut)?pt(st):Q.has(kt)?M--:V.get(ut)>V.get(kt)?(Q.add(ut),pt(st)):($.add(kt),M--):(_(St,h),M--)}for(;M--;){const st=e[M];G.has(st.key)||_(st,h)}for(;A;)pt(F[A-1]);return Ji(Z),F}function fx(e,t){const n={},i={},r={$$scope:1};let a=e.length;for(;a--;){const h=e[a],u=t[a];if(u){for(const _ in h)_ in u||(i[_]=1);for(const _ in u)r[_]||(n[_]=u[_],r[_]=1);e[a]=u}else for(const _ in h)r[_]=1}for(const h in i)h in n||(n[h]=void 0);return n}function vc(e,t,n){const i=e.$$.props[t];i!==void 0&&(e.$$.bound[i]=n,n(e.$$.ctx[i]))}function Wt(e){e&&e.c()}function jt(e,t,n){const{fragment:i,after_update:r}=e.$$;i&&i.m(t,n),Hp(()=>{const a=e.$$.on_mount.map(rx).filter(wg);e.$$.on_destroy?e.$$.on_destroy.push(...a):Ji(a),e.$$.on_mount=[]}),r.forEach(Hp)}function qt(e,t){const n=e.$$;n.fragment!==null&&(KS(n.after_update),Ji(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function tI(e,t){e.$$.dirty[0]===-1&&(Vh.push(e),cx(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const D=A.length?A[0]:M;return w.ctx&&r(w.ctx[E],w.ctx[E]=D)&&(!w.skip_bound&&w.bound[E]&&w.bound[E](D),S&&tI(e,E)),M}):[],w.update(),S=!0,Ji(w.before_update),w.fragment=i?i(w.ctx):!1,t.target){if(t.hydrate){const E=WS(t.target);w.fragment&&w.fragment.l(E),E.forEach(yt)}else w.fragment&&w.fragment.c();t.intro&&ft(e.$$.fragment),jt(e,t.target,t.anchor),hx()}Vp(_)}class nn{constructor(){Ir(this,"$$");Ir(this,"$$set")}$destroy(){qt(this,1),this.$destroy=Pe}$on(t,n){if(!wg(n))return Pe;const i=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return i.push(n),()=>{const r=i.indexOf(n);r!==-1&&i.splice(r,1)}}$set(t){this.$$set&&!US(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const eI="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(eI);var px=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function dx(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function mx(e){if(e.__esModule)return e;var t=e.default;if(typeof t=="function"){var n=function i(){return this instanceof i?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};n.prototype=t.prototype}else n={};return Object.defineProperty(n,"__esModule",{value:!0}),Object.keys(e).forEach(function(i){var r=Object.getOwnPropertyDescriptor(e,i);Object.defineProperty(n,i,r.get?r:{enumerable:!0,get:function(){return e[i]}})}),n}var gx={exports:{}};/** - * MapLibre GL JS - * @license 3-Clause BSD. Full text of license: https://github.com/maplibre/maplibre-gl-js/blob/v4.1.3/LICENSE.txt - */(function(e,t){(function(n,i){e.exports=i()})(px,function(){var n={},i={};function r(h,u,_){if(i[h]=_,h==="index"){var w="var sharedModule = {}; ("+i.shared+")(sharedModule); ("+i.worker+")(sharedModule);",S={};return i.shared(S),i.index(n,S),typeof window<"u"&&n.setWorkerUrl(window.URL.createObjectURL(new Blob([w],{type:"text/javascript"}))),n}}r("shared",["exports"],function(h){function u(l,o,c,p){return new(c||(c=Promise))(function(g,b){function x(k){try{L(p.next(k))}catch(N){b(N)}}function I(k){try{L(p.throw(k))}catch(N){b(N)}}function L(k){var N;k.done?g(k.value):(N=k.value,N instanceof c?N:new c(function(z){z(N)})).then(x,I)}L((p=p.apply(l,o||[])).next())})}function _(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}typeof SuppressedError=="function"&&SuppressedError;var w=S;function S(l,o){this.x=l,this.y=o}S.prototype={clone:function(){return new S(this.x,this.y)},add:function(l){return this.clone()._add(l)},sub:function(l){return this.clone()._sub(l)},multByPoint:function(l){return this.clone()._multByPoint(l)},divByPoint:function(l){return this.clone()._divByPoint(l)},mult:function(l){return this.clone()._mult(l)},div:function(l){return this.clone()._div(l)},rotate:function(l){return this.clone()._rotate(l)},rotateAround:function(l,o){return this.clone()._rotateAround(l,o)},matMult:function(l){return this.clone()._matMult(l)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(l){return this.x===l.x&&this.y===l.y},dist:function(l){return Math.sqrt(this.distSqr(l))},distSqr:function(l){var o=l.x-this.x,c=l.y-this.y;return o*o+c*c},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(l){return Math.atan2(this.y-l.y,this.x-l.x)},angleWith:function(l){return this.angleWithSep(l.x,l.y)},angleWithSep:function(l,o){return Math.atan2(this.x*o-this.y*l,this.x*l+this.y*o)},_matMult:function(l){var o=l[2]*this.x+l[3]*this.y;return this.x=l[0]*this.x+l[1]*this.y,this.y=o,this},_add:function(l){return this.x+=l.x,this.y+=l.y,this},_sub:function(l){return this.x-=l.x,this.y-=l.y,this},_mult:function(l){return this.x*=l,this.y*=l,this},_div:function(l){return this.x/=l,this.y/=l,this},_multByPoint:function(l){return this.x*=l.x,this.y*=l.y,this},_divByPoint:function(l){return this.x/=l.x,this.y/=l.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var l=this.y;return this.y=this.x,this.x=-l,this},_rotate:function(l){var o=Math.cos(l),c=Math.sin(l),p=c*this.x+o*this.y;return this.x=o*this.x-c*this.y,this.y=p,this},_rotateAround:function(l,o){var c=Math.cos(l),p=Math.sin(l),g=o.y+p*(this.x-o.x)+c*(this.y-o.y);return this.x=o.x+c*(this.x-o.x)-p*(this.y-o.y),this.y=g,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},S.convert=function(l){return l instanceof S?l:Array.isArray(l)?new S(l[0],l[1]):l};var E=_(w),M=A;function A(l,o,c,p){this.cx=3*l,this.bx=3*(c-l)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*o,this.by=3*(p-o)-this.cy,this.ay=1-this.cy-this.by,this.p1x=l,this.p1y=o,this.p2x=c,this.p2y=p}A.prototype={sampleCurveX:function(l){return((this.ax*l+this.bx)*l+this.cx)*l},sampleCurveY:function(l){return((this.ay*l+this.by)*l+this.cy)*l},sampleCurveDerivativeX:function(l){return(3*this.ax*l+2*this.bx)*l+this.cx},solveCurveX:function(l,o){if(o===void 0&&(o=1e-6),l<0)return 0;if(l>1)return 1;for(var c=l,p=0;p<8;p++){var g=this.sampleCurveX(c)-l;if(Math.abs(g)g?x=c:I=c,c=.5*(I-x)+x;return c},solve:function(l,o){return this.sampleCurveY(this.solveCurveX(l,o))}};var D=_(M);let O,F;function G(){return O==null&&(O=typeof OffscreenCanvas<"u"&&new OffscreenCanvas(1,1).getContext("2d")&&typeof createImageBitmap=="function"),O}function V(){if(F==null&&(F=!1,G())){const o=new OffscreenCanvas(5,5).getContext("2d",{willReadFrequently:!0});if(o){for(let p=0;p<5*5;p++){const g=4*p;o.fillStyle=`rgb(${g},${g+1},${g+2})`,o.fillRect(p%5,Math.floor(p/5),1,1)}const c=o.getImageData(0,0,5,5).data;for(let p=0;p<5*5*4;p++)if(p%4!=3&&c[p]!==p){F=!0;break}}}return F||!1}function Z(l,o,c,p){const g=new D(l,o,c,p);return function(b){return g.solve(b)}}const $=Z(.25,.1,.25,1);function Q(l,o,c){return Math.min(c,Math.max(o,l))}function pt(l,o,c){const p=c-o,g=((l-o)%p+p)%p+o;return g===o?c:g}function st(l,...o){for(const c of o)for(const p in c)l[p]=c[p];return l}let St=1;function ut(l,o,c){const p={};for(const g in l)p[g]=o.call(c||this,l[g],g,l);return p}function kt(l,o,c){const p={};for(const g in l)o.call(c||this,l[g],g,l)&&(p[g]=l[g]);return p}function mt(l){return Array.isArray(l)?l.map(mt):typeof l=="object"&&l?ut(l,mt):l}const Et={};function te(l){Et[l]||(typeof console<"u"&&console.warn(l),Et[l]=!0)}function Pt(l,o,c){return(c.y-l.y)*(o.x-l.x)>(o.y-l.y)*(c.x-l.x)}function ce(l){let o=0;for(let c,p,g=0,b=l.length,x=b-1;g"u")throw new Error("VideoFrame not supported");const b=new VideoFrame(l,{timestamp:0});try{const x=b==null?void 0:b.format;if(!x||!x.startsWith("BGR")&&!x.startsWith("RGB"))throw new Error(`Unrecognized format ${x}`);const I=x.startsWith("BGR"),L=new Uint8ClampedArray(p*g*4);if(yield b.copyTo(L,function(k,N,z,q,H){const Y=4*Math.max(-N,0),et=(Math.max(0,z)-z)*q*4+Y,at=4*q,gt=Math.max(0,N),Dt=Math.max(0,z);return{rect:{x:gt,y:Dt,width:Math.min(k.width,N+q)-gt,height:Math.min(k.height,z+H)-Dt},layout:[{offset:et,stride:at}]}}(l,o,c,p,g)),I)for(let k=0;kJt(self)?self.worker&&self.worker.referrer:(window.location.protocol==="blob:"?window.parent:window).location.href,ie=function(l,o){if(/:\/\//.test(l.url)&&!/^https?:|^file:/.test(l.url)){const p=mn(l.url);if(p)return p(l,o);if(Jt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:l,targetMapId:ri},o)}if(!(/^file:/.test(c=l.url)||/^file:/.test($n())&&!/^\w+:/.test(c))){if(fetch&&Request&&AbortController&&Object.prototype.hasOwnProperty.call(Request.prototype,"signal"))return function(p,g){return u(this,void 0,void 0,function*(){const b=new Request(p.url,{method:p.method||"GET",body:p.body,credentials:p.credentials,headers:p.headers,cache:p.cache,referrer:$n(),signal:g.signal});p.type==="json"&&b.headers.set("Accept","application/json");const x=yield fetch(b);if(!x.ok){const k=yield x.blob();throw new oi(x.status,x.statusText,p.url,k)}let I;I=p.type==="arrayBuffer"||p.type==="image"?x.arrayBuffer():p.type==="json"?x.json():x.text();const L=yield I;if(g.signal.aborted)throw Dn();return{data:L,cacheControl:x.headers.get("Cache-Control"),expires:x.headers.get("Expires")}})}(l,o);if(Jt(self)&&self.worker&&self.worker.actor)return self.worker.actor.sendAsync({type:"GR",data:l,mustQueue:!0,targetMapId:ri},o)}var c;return function(p,g){return new Promise((b,x)=>{const I=new XMLHttpRequest;I.open(p.method||"GET",p.url,!0),p.type!=="arrayBuffer"&&p.type!=="image"||(I.responseType="arraybuffer");for(const L in p.headers)I.setRequestHeader(L,p.headers[L]);p.type==="json"&&(I.responseType="text",I.setRequestHeader("Accept","application/json")),I.withCredentials=p.credentials==="include",I.onerror=()=>{x(new Error(I.statusText))},I.onload=()=>{if(!g.signal.aborted)if((I.status>=200&&I.status<300||I.status===0)&&I.response!==null){let L=I.response;if(p.type==="json")try{L=JSON.parse(I.response)}catch(k){return void x(k)}b({data:L,cacheControl:I.getResponseHeader("Cache-Control"),expires:I.getResponseHeader("Expires")})}else{const L=new Blob([I.response],{type:I.getResponseHeader("Content-Type")});x(new oi(I.status,I.statusText,p.url,L))}},g.signal.addEventListener("abort",()=>{I.abort(),x(Dn())}),I.send(p.body)})}(l,o)};function Je(l){if(!l||l.indexOf("://")<=0||l.indexOf("data:image/")===0||l.indexOf("blob:")===0)return!0;const o=new URL(l),c=window.location;return o.protocol===c.protocol&&o.host===c.host}function $e(l,o,c){c[l]&&c[l].indexOf(o)!==-1||(c[l]=c[l]||[],c[l].push(o))}function Ht(l,o,c){if(c&&c[l]){const p=c[l].indexOf(o);p!==-1&&c[l].splice(p,1)}}class Nt{constructor(o,c={}){st(this,c),this.type=o}}class Ee extends Nt{constructor(o,c={}){super("error",st({error:o},c))}}class bi{on(o,c){return this._listeners=this._listeners||{},$e(o,c,this._listeners),this}off(o,c){return Ht(o,c,this._listeners),Ht(o,c,this._oneTimeListeners),this}once(o,c){return c?(this._oneTimeListeners=this._oneTimeListeners||{},$e(o,c,this._oneTimeListeners),this):new Promise(p=>this.once(o,p))}fire(o,c){typeof o=="string"&&(o=new Nt(o,c||{}));const p=o.type;if(this.listens(p)){o.target=this;const g=this._listeners&&this._listeners[p]?this._listeners[p].slice():[];for(const I of g)I.call(this,o);const b=this._oneTimeListeners&&this._oneTimeListeners[p]?this._oneTimeListeners[p].slice():[];for(const I of b)Ht(p,I,this._oneTimeListeners),I.call(this,o);const x=this._eventedParent;x&&(st(o,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),x.fire(o))}else o instanceof Ee&&console.error(o.error);return this}listens(o){return this._listeners&&this._listeners[o]&&this._listeners[o].length>0||this._oneTimeListeners&&this._oneTimeListeners[o]&&this._oneTimeListeners[o].length>0||this._eventedParent&&this._eventedParent.listens(o)}setEventedParent(o,c){return this._eventedParent=o,this._eventedParentData=c,this}}var Bt={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sky:{type:"sky"},terrain:{type:"terrain"},sources:{required:!0,type:"sources"},sprite:{type:"sprite"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{},custom:{}},default:"mapbox"},redFactor:{type:"number",default:1},blueFactor:{type:"number",default:1},greenFactor:{type:"number",default:1},baseShift:{type:"number",default:0},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{required:!0,type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image",{"!":"icon-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"padding",default:[2],units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},"viewport-glyph":{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-variable-anchor-offset":{type:"variableAnchorOffsetCollection",requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field",{"!":"text-overlap"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-overlap":{type:"enum",values:{never:{},always:{},cooperative:{}},requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},sky:{"sky-color":{type:"color","property-type":"data-constant",default:"#88C6FC",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-blend":{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0},"horizon-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}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}};const wn=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function cr(l,o){const c={};for(const p in l)p!=="ref"&&(c[p]=l[p]);return wn.forEach(p=>{p in o&&(c[p]=o[p])}),c}function gn(l,o){if(Array.isArray(l)){if(!Array.isArray(o)||l.length!==o.length)return!1;for(let c=0;c`:l.itemType.kind==="value"?"array":`array<${o}>`}return l.kind}const Ct=[Qi,fe,un,an,Fi,ji,is,K(sn),lt,j,W];function J(l,o){if(o.kind==="error")return null;if(l.kind==="array"){if(o.kind==="array"&&(o.N===0&&o.itemType.kind==="value"||!J(l.itemType,o.itemType))&&(typeof l.N!="number"||l.N===o.N))return null}else{if(l.kind===o.kind)return null;if(l.kind==="value"){for(const c of Ct)if(!J(c,o))return null}}return`Expected ${nt(l)} but found ${nt(o)} instead.`}function Tt(l,o){return o.some(c=>c.kind===l.kind)}function _t(l,o){return o.some(c=>c==="null"?l===null:c==="array"?Array.isArray(l):c==="object"?l&&!Array.isArray(l)&&typeof l=="object":c===typeof l)}function At(l,o){return l.kind==="array"&&o.kind==="array"?l.itemType.kind===o.itemType.kind&&typeof l.N=="number":l.kind===o.kind}const Vt=.96422,Xt=.82521,Yt=4/29,ke=6/29,Ne=3*ke*ke,tn=ke*ke*ke,rn=Math.PI/180,Cn=180/Math.PI;function Yn(l){return(l%=360)<0&&(l+=360),l}function di([l,o,c,p]){let g,b;const x=pn((.2225045*(l=tr(l))+.7168786*(o=tr(o))+.0606169*(c=tr(c)))/1);l===o&&o===c?g=b=x:(g=pn((.4360747*l+.3850649*o+.1430804*c)/Vt),b=pn((.0139322*l+.0971045*o+.7141733*c)/Xt));const I=116*x-16;return[I<0?0:I,500*(g-x),200*(x-b),p]}function tr(l){return l<=.04045?l/12.92:Math.pow((l+.055)/1.055,2.4)}function pn(l){return l>tn?Math.pow(l,1/3):l/Ne+Yt}function Pi([l,o,c,p]){let g=(l+16)/116,b=isNaN(o)?g:g+o/500,x=isNaN(c)?g:g-c/200;return g=1*io(g),b=Vt*io(b),x=Xt*io(x),[hr(3.1338561*b-1.6168667*g-.4906146*x),hr(-.9787684*b+1.9161415*g+.033454*x),hr(.0719453*b-.2289914*g+1.4052427*x),p]}function hr(l){return(l=l<=.00304?12.92*l:1.055*Math.pow(l,1/2.4)-.055)<0?0:l>1?1:l}function io(l){return l>ke?l*l*l:Ne*(l-Yt)}function go(l){return parseInt(l.padEnd(2,l),16)/255}function Sr(l,o){return js(o?l/100:l,0,1)}function js(l,o,c){return Math.min(Math.max(o,l),c)}function Ed(l){return!l.some(Number.isNaN)}const Zg={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]};class Zn{constructor(o,c,p,g=1,b=!0){this.r=o,this.g=c,this.b=p,this.a=g,b||(this.r*=g,this.g*=g,this.b*=g,g||this.overwriteGetter("rgb",[o,c,p,g]))}static parse(o){if(o instanceof Zn)return o;if(typeof o!="string")return;const c=function(p){if((p=p.toLowerCase().trim())==="transparent")return[0,0,0,0];const g=Zg[p];if(g){const[x,I,L]=g;return[x/255,I/255,L/255,1]}if(p.startsWith("#")&&/^#(?:[0-9a-f]{3,4}|[0-9a-f]{6}|[0-9a-f]{8})$/.test(p)){const x=p.length<6?1:2;let I=1;return[go(p.slice(I,I+=x)),go(p.slice(I,I+=x)),go(p.slice(I,I+=x)),go(p.slice(I,I+x)||"ff")]}if(p.startsWith("rgb")){const x=p.match(/^rgba?\(\s*([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s+|\s*(,)\s*)([\de.+-]+)(%)?(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(x){const[I,L,k,N,z,q,H,Y,et,at,gt,Dt]=x,xt=[N||" ",H||" ",at].join("");if(xt===" "||xt===" /"||xt===",,"||xt===",,,"){const Lt=[k,q,et].join(""),Kt=Lt==="%%%"?100:Lt===""?255:0;if(Kt){const Qt=[js(+L/Kt,0,1),js(+z/Kt,0,1),js(+Y/Kt,0,1),gt?Sr(+gt,Dt):1];if(Ed(Qt))return Qt}}return}}const b=p.match(/^hsla?\(\s*([\de.+-]+)(?:deg)?(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s+|\s*(,)\s*)([\de.+-]+)%(?:\s*([,\/])\s*([\de.+-]+)(%)?)?\s*\)$/);if(b){const[x,I,L,k,N,z,q,H,Y]=b,et=[L||" ",N||" ",q].join("");if(et===" "||et===" /"||et===",,"||et===",,,"){const at=[+I,js(+k,0,100),js(+z,0,100),H?Sr(+H,Y):1];if(Ed(at))return function([gt,Dt,xt,Lt]){function Kt(Qt){const xe=(Qt+gt/30)%12,Me=Dt*Math.min(xt,1-xt);return xt-Me*Math.max(-1,Math.min(xe-3,9-xe,1))}return gt=Yn(gt),Dt/=100,xt/=100,[Kt(0),Kt(8),Kt(4),Lt]}(at)}}}(o);return c?new Zn(...c,!1):void 0}get rgb(){const{r:o,g:c,b:p,a:g}=this,b=g||1/0;return this.overwriteGetter("rgb",[o/b,c/b,p/b,g])}get hcl(){return this.overwriteGetter("hcl",function(o){const[c,p,g,b]=di(o),x=Math.sqrt(p*p+g*g);return[Math.round(1e4*x)?Yn(Math.atan2(g,p)*Cn):NaN,x,c,b]}(this.rgb))}get lab(){return this.overwriteGetter("lab",di(this.rgb))}overwriteGetter(o,c){return Object.defineProperty(this,o,{value:c}),c}toString(){const[o,c,p,g]=this.rgb;return`rgba(${[o,c,p].map(b=>Math.round(255*b)).join(",")},${g})`}}Zn.black=new Zn(0,0,0,1),Zn.white=new Zn(1,1,1,1),Zn.transparent=new Zn(0,0,0,0),Zn.red=new Zn(1,0,0,1);class Cf{constructor(o,c,p){this.sensitivity=o?c?"variant":"case":c?"accent":"base",this.locale=p,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(o,c){return this.collator.compare(o,c)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class Tf{constructor(o,c,p,g,b){this.text=o,this.image=c,this.scale=p,this.fontStack=g,this.textColor=b}}class Ro{constructor(o){this.sections=o}static fromString(o){return new Ro([new Tf(o,null,null,null,null)])}isEmpty(){return this.sections.length===0||!this.sections.some(o=>o.text.length!==0||o.image&&o.image.name.length!==0)}static factory(o){return o instanceof Ro?o:Ro.fromString(o)}toString(){return this.sections.length===0?"":this.sections.map(o=>o.text).join("")}}class _o{constructor(o){this.values=o.slice()}static parse(o){if(o instanceof _o)return o;if(typeof o=="number")return new _o([o,o,o,o]);if(Array.isArray(o)&&!(o.length<1||o.length>4)){for(const c of o)if(typeof c!="number")return;switch(o.length){case 1:o=[o[0],o[0],o[0],o[0]];break;case 2:o=[o[0],o[1],o[0],o[1]];break;case 3:o=[o[0],o[1],o[2],o[1]]}return new _o(o)}}toString(){return JSON.stringify(this.values)}}const qu=new Set(["center","left","right","top","bottom","top-left","top-right","bottom-left","bottom-right"]);class rs{constructor(o){this.values=o.slice()}static parse(o){if(o instanceof rs)return o;if(Array.isArray(o)&&!(o.length<1)&&o.length%2==0){for(let c=0;c=0&&l<=255&&typeof o=="number"&&o>=0&&o<=255&&typeof c=="number"&&c>=0&&c<=255?p===void 0||typeof p=="number"&&p>=0&&p<=1?null:`Invalid rgba value [${[l,o,c,p].join(", ")}]: 'a' must be between 0 and 1.`:`Invalid rgba value [${(typeof p=="number"?[l,o,c,p]:[l,o,c]).join(", ")}]: 'r', 'g', and 'b' must be between 0 and 255.`}function Bc(l){if(l===null||typeof l=="string"||typeof l=="boolean"||typeof l=="number"||l instanceof Zn||l instanceof Cf||l instanceof Ro||l instanceof _o||l instanceof rs||l instanceof os)return!0;if(Array.isArray(l)){for(const o of l)if(!Bc(o))return!1;return!0}if(typeof l=="object"){for(const o in l)if(!Bc(l[o]))return!1;return!0}return!1}function er(l){if(l===null)return Qi;if(typeof l=="string")return un;if(typeof l=="boolean")return an;if(typeof l=="number")return fe;if(l instanceof Zn)return Fi;if(l instanceof Cf)return ba;if(l instanceof Ro)return ji;if(l instanceof _o)return lt;if(l instanceof rs)return W;if(l instanceof os)return j;if(Array.isArray(l)){const o=l.length;let c;for(const p of l){const g=er(p);if(c){if(c===g)continue;c=sn;break}c=g}return K(c||sn,o)}return is}function Zu(l){const o=typeof l;return l===null?"":o==="string"||o==="number"||o==="boolean"?String(l):l instanceof Zn||l instanceof Ro||l instanceof _o||l instanceof rs||l instanceof os?l.toString():JSON.stringify(l)}class qa{constructor(o,c){this.type=o,this.value=c}static parse(o,c){if(o.length!==2)return c.error(`'literal' expression requires exactly one argument, but found ${o.length-1} instead.`);if(!Bc(o[1]))return c.error("invalid value");const p=o[1];let g=er(p);const b=c.expectedType;return g.kind!=="array"||g.N!==0||!b||b.kind!=="array"||typeof b.N=="number"&&b.N!==0||(g=b),new qa(g,p)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}}class xi{constructor(o){this.name="ExpressionEvaluationError",this.message=o}toJSON(){return this.message}}const Vc={string:un,number:fe,boolean:an,object:is};class No{constructor(o,c){this.type=o,this.args=c}static parse(o,c){if(o.length<2)return c.error("Expected at least one argument.");let p,g=1;const b=o[0];if(b==="array"){let I,L;if(o.length>2){const k=o[1];if(typeof k!="string"||!(k in Vc)||k==="object")return c.error('The item type argument of "array" must be one of string, number, boolean',1);I=Vc[k],g++}else I=sn;if(o.length>3){if(o[2]!==null&&(typeof o[2]!="number"||o[2]<0||o[2]!==Math.floor(o[2])))return c.error('The length argument to "array" must be a positive integer literal',2);L=o[2],g++}p=K(I,L)}else{if(!Vc[b])throw new Error(`Types doesn't contain name = ${b}`);p=Vc[b]}const x=[];for(;go.outputDefined())}}const Uc={"to-boolean":an,"to-color":Fi,"to-number":fe,"to-string":un};class qs{constructor(o,c){this.type=o,this.args=c}static parse(o,c){if(o.length<2)return c.error("Expected at least one argument.");const p=o[0];if(!Uc[p])throw new Error(`Can't parse ${p} as it is not part of the known types`);if((p==="to-boolean"||p==="to-string")&&o.length!==2)return c.error("Expected one argument.");const g=Uc[p],b=[];for(let x=1;x4?`Invalid rbga value ${JSON.stringify(c)}: expected an array containing either three or four numeric values.`:Jl(c[0],c[1],c[2],c[3]),!p))return new Zn(c[0]/255,c[1]/255,c[2]/255,c[3])}throw new xi(p||`Could not parse color from value '${typeof c=="string"?c:JSON.stringify(c)}'`)}case"padding":{let c;for(const p of this.args){c=p.evaluate(o);const g=_o.parse(c);if(g)return g}throw new xi(`Could not parse padding from value '${typeof c=="string"?c:JSON.stringify(c)}'`)}case"variableAnchorOffsetCollection":{let c;for(const p of this.args){c=p.evaluate(o);const g=rs.parse(c);if(g)return g}throw new xi(`Could not parse variableAnchorOffsetCollection from value '${typeof c=="string"?c:JSON.stringify(c)}'`)}case"number":{let c=null;for(const p of this.args){if(c=p.evaluate(o),c===null)return 0;const g=Number(c);if(!isNaN(g))return g}throw new xi(`Could not convert ${JSON.stringify(c)} to number.`)}case"formatted":return Ro.fromString(Zu(this.args[0].evaluate(o)));case"resolvedImage":return os.fromString(Zu(this.args[0].evaluate(o)));default:return Zu(this.args[0].evaluate(o))}}eachChild(o){this.args.forEach(o)}outputDefined(){return this.args.every(o=>o.outputDefined())}}const Wu=["Unknown","Point","LineString","Polygon"];class Wn{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null}id(){return this.feature&&"id"in this.feature?this.feature.id:null}geometryType(){return this.feature?typeof this.feature.type=="number"?Wu[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(o){let c=this._parseColorCache[o];return c||(c=this._parseColorCache[o]=Zn.parse(o)),c}}class Gc{constructor(o,c,p=[],g,b=new vl,x=[]){this.registry=o,this.path=p,this.key=p.map(I=>`[${I}]`).join(""),this.scope=b,this.errors=x,this.expectedType=g,this._isConstant=c}parse(o,c,p,g,b={}){return c?this.concat(c,p,g)._parse(o,b):this._parse(o,b)}_parse(o,c){function p(g,b,x){return x==="assert"?new No(b,[g]):x==="coerce"?new qs(b,[g]):g}if(o!==null&&typeof o!="string"&&typeof o!="boolean"&&typeof o!="number"||(o=["literal",o]),Array.isArray(o)){if(o.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');const g=o[0];if(typeof g!="string")return this.error(`Expression name must be a string, but found ${typeof g} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const b=this.registry[g];if(b){let x=b.parse(o,this);if(!x)return null;if(this.expectedType){const I=this.expectedType,L=x.type;if(I.kind!=="string"&&I.kind!=="number"&&I.kind!=="boolean"&&I.kind!=="object"&&I.kind!=="array"||L.kind!=="value")if(I.kind!=="color"&&I.kind!=="formatted"&&I.kind!=="resolvedImage"||L.kind!=="value"&&L.kind!=="string")if(I.kind!=="padding"||L.kind!=="value"&&L.kind!=="number"&&L.kind!=="array")if(I.kind!=="variableAnchorOffsetCollection"||L.kind!=="value"&&L.kind!=="array"){if(this.checkSubtype(I,L))return null}else x=p(x,I,c.typeAnnotation||"coerce");else x=p(x,I,c.typeAnnotation||"coerce");else x=p(x,I,c.typeAnnotation||"coerce");else x=p(x,I,c.typeAnnotation||"assert")}if(!(x instanceof qa)&&x.type.kind!=="resolvedImage"&&this._isConstant(x)){const I=new Wn;try{x=new qa(x.type,x.evaluate(I))}catch(L){return this.error(L.message),null}}return x}return this.error(`Unknown expression "${g}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(o===void 0?"'undefined' value invalid. Use null instead.":typeof o=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':`Expected an array, but found ${typeof o} instead.`)}concat(o,c,p){const g=typeof o=="number"?this.path.concat(o):this.path,b=p?this.scope.concat(p):this.scope;return new Gc(this.registry,this._isConstant,g,c||null,b,this.errors)}error(o,...c){const p=`${this.key}${c.map(g=>`[${g}]`).join("")}`;this.errors.push(new no(p,o))}checkSubtype(o,c){const p=J(o,c);return p&&this.error(p),p}}class Ql{constructor(o,c,p){this.type=ba,this.locale=p,this.caseSensitive=o,this.diacriticSensitive=c}static parse(o,c){if(o.length!==2)return c.error("Expected one argument.");const p=o[1];if(typeof p!="object"||Array.isArray(p))return c.error("Collator options argument must be an object.");const g=c.parse(p["case-sensitive"]!==void 0&&p["case-sensitive"],1,an);if(!g)return null;const b=c.parse(p["diacritic-sensitive"]!==void 0&&p["diacritic-sensitive"],1,an);if(!b)return null;let x=null;return p.locale&&(x=c.parse(p.locale,1,un),!x)?null:new Ql(g,b,x)}evaluate(o){return new Cf(this.caseSensitive.evaluate(o),this.diacriticSensitive.evaluate(o),this.locale?this.locale.evaluate(o):null)}eachChild(o){o(this.caseSensitive),o(this.diacriticSensitive),this.locale&&o(this.locale)}outputDefined(){return!1}}const Za=8192;function jc(l,o){l[0]=Math.min(l[0],o[0]),l[1]=Math.min(l[1],o[1]),l[2]=Math.max(l[2],o[0]),l[3]=Math.max(l[3],o[1])}function Hu(l,o){return!(l[0]<=o[0]||l[2]>=o[2]||l[1]<=o[1]||l[3]>=o[3])}function Wg(l,o){const c=(180+l[0])/360,p=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+l[1]*Math.PI/360)))/360,g=Math.pow(2,o.z);return[Math.round(c*g*Za),Math.round(p*g*Za)]}function Cd(l,o,c){const p=l[0]-o[0],g=l[1]-o[1],b=l[0]-c[0],x=l[1]-c[1];return p*x-b*g==0&&p*b<=0&&g*x<=0}function qc(l,o){let c=!1;for(let x=0,I=o.length;x(p=l)[1]!=(b=L[k+1])[1]>p[1]&&p[0]<(b[0]-g[0])*(p[1]-g[1])/(b[1]-g[1])+g[0]&&(c=!c)}}var p,g,b;return c}function Hg(l,o){for(let c=0;c0&&I<0||x<0&&I>0}function Xg(l,o,c){for(const k of c)for(let N=0;Nc[2]){const g=.5*p;let b=l[0]-c[0]>g?-p:c[0]-l[0]>g?p:0;b===0&&(b=l[0]-c[2]>g?-p:c[2]-l[0]>g?p:0),l[0]+=b}jc(o,l)}function Wc(l,o,c,p){const g=Math.pow(2,p.z)*Za,b=[p.x*Za,p.y*Za],x=[];for(const I of l)for(const L of I){const k=[L.x+b[0],L.y+b[1]];kd(k,o,c,g),x.push(k)}return x}function Ad(l,o,c,p){const g=Math.pow(2,p.z)*Za,b=[p.x*Za,p.y*Za],x=[];for(const L of l){const k=[];for(const N of L){const z=[N.x+b[0],N.y+b[1]];jc(o,z),k.push(z)}x.push(k)}if(o[2]-o[0]<=g/2){(I=o)[0]=I[1]=1/0,I[2]=I[3]=-1/0;for(const L of x)for(const k of L)kd(k,o,c,g)}var I;return x}class bl{constructor(o,c){this.type=an,this.geojson=o,this.geometries=c}static parse(o,c){if(o.length!==2)return c.error(`'within' expression requires exactly one argument, but found ${o.length-1} instead.`);if(Bc(o[1])){const p=o[1];if(p.type==="FeatureCollection"){const g=[];for(const b of p.features){const{type:x,coordinates:I}=b.geometry;x==="Polygon"&&g.push(I),x==="MultiPolygon"&&g.push(...I)}if(g.length)return new bl(p,{type:"MultiPolygon",coordinates:g})}else if(p.type==="Feature"){const g=p.geometry.type;if(g==="Polygon"||g==="MultiPolygon")return new bl(p,p.geometry)}else if(p.type==="Polygon"||p.type==="MultiPolygon")return new bl(p,p)}return c.error("'within' expression requires valid geojson object that contains polygon geometry type.")}evaluate(o){if(o.geometry()!=null&&o.canonicalID()!=null){if(o.geometryType()==="Point")return function(c,p){const g=[1/0,1/0,-1/0,-1/0],b=[1/0,1/0,-1/0,-1/0],x=c.canonicalID();if(p.type==="Polygon"){const I=Zc(p.coordinates,b,x),L=Wc(c.geometry(),g,b,x);if(!Hu(g,b))return!1;for(const k of L)if(!qc(k,I))return!1}if(p.type==="MultiPolygon"){const I=Pd(p.coordinates,b,x),L=Wc(c.geometry(),g,b,x);if(!Hu(g,b))return!1;for(const k of L)if(!Hg(k,I))return!1}return!0}(o,this.geometries);if(o.geometryType()==="LineString")return function(c,p){const g=[1/0,1/0,-1/0,-1/0],b=[1/0,1/0,-1/0,-1/0],x=c.canonicalID();if(p.type==="Polygon"){const I=Zc(p.coordinates,b,x),L=Ad(c.geometry(),g,b,x);if(!Hu(g,b))return!1;for(const k of L)if(!Ld(k,I))return!1}if(p.type==="MultiPolygon"){const I=Pd(p.coordinates,b,x),L=Ad(c.geometry(),g,b,x);if(!Hu(g,b))return!1;for(const k of L)if(!Md(k,I))return!1}return!0}(o,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}}class Hc{constructor(o,c){this.type=c.type,this.name=o,this.boundExpression=c}static parse(o,c){if(o.length!==2||typeof o[1]!="string")return c.error("'var' expression requires exactly one string literal argument.");const p=o[1];return c.scope.has(p)?new Hc(p,c.scope.get(p)):c.error(`Unknown variable "${p}". Make sure "${p}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(o){return this.boundExpression.evaluate(o)}eachChild(){}outputDefined(){return!1}}class Oo{constructor(o,c,p,g){this.name=o,this.type=c,this._evaluate=p,this.args=g}evaluate(o){return this._evaluate(o,this.args)}eachChild(o){this.args.forEach(o)}outputDefined(){return!1}static parse(o,c){const p=o[0],g=Oo.definitions[p];if(!g)return c.error(`Unknown expression "${p}". If you wanted a literal array, use ["literal", [...]].`,0);const b=Array.isArray(g)?g[0]:g.type,x=Array.isArray(g)?[[g[1],g[2]]]:g.overloads,I=x.filter(([k])=>!Array.isArray(k)||k.length===o.length-1);let L=null;for(const[k,N]of I){L=new Gc(c.registry,Xu,c.path,null,c.scope);const z=[];let q=!1;for(let H=1;H{return q=z,Array.isArray(q)?`(${q.map(nt).join(", ")})`:`(${nt(q.type)}...)`;var q}).join(" | "),N=[];for(let z=1;z{c=o?c&&Xu(p):c&&p instanceof qa}),!!c&&Xc(l)&&Yu(l,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])}function Xc(l){if(l instanceof Oo&&(l.name==="get"&&l.args.length===1||l.name==="feature-state"||l.name==="has"&&l.args.length===1||l.name==="properties"||l.name==="geometry-type"||l.name==="id"||/^filter-/.test(l.name))||l instanceof bl)return!1;let o=!0;return l.eachChild(c=>{o&&!Xc(c)&&(o=!1)}),o}function $u(l){if(l instanceof Oo&&l.name==="feature-state")return!1;let o=!0;return l.eachChild(c=>{o&&!$u(c)&&(o=!1)}),o}function Yu(l,o){if(l instanceof Oo&&o.indexOf(l.name)>=0)return!1;let c=!0;return l.eachChild(p=>{c&&!Yu(p,o)&&(c=!1)}),c}function Ku(l,o){const c=l.length-1;let p,g,b=0,x=c,I=0;for(;b<=x;)if(I=Math.floor((b+x)/2),p=l[I],g=l[I+1],p<=o){if(I===c||oo))throw new xi("Input is not a number.");x=I-1}return 0}class Ju{constructor(o,c,p){this.type=o,this.input=c,this.labels=[],this.outputs=[];for(const[g,b]of p)this.labels.push(g),this.outputs.push(b)}static parse(o,c){if(o.length-1<4)return c.error(`Expected at least 4 arguments, but found only ${o.length-1}.`);if((o.length-1)%2!=0)return c.error("Expected an even number of arguments.");const p=c.parse(o[1],1,fe);if(!p)return null;const g=[];let b=null;c.expectedType&&c.expectedType.kind!=="value"&&(b=c.expectedType);for(let x=1;x=I)return c.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',k);const z=c.parse(L,N,b);if(!z)return null;b=b||z.type,g.push([I,z])}return new Ju(b,p,g)}evaluate(o){const c=this.labels,p=this.outputs;if(c.length===1)return p[0].evaluate(o);const g=this.input.evaluate(o);if(g<=c[0])return p[0].evaluate(o);const b=c.length;return g>=c[b-1]?p[b-1].evaluate(o):p[Ku(c,g)].evaluate(o)}eachChild(o){o(this.input);for(const c of this.outputs)o(c)}outputDefined(){return this.outputs.every(o=>o.outputDefined())}}function $g(l){return l&&l.__esModule&&Object.prototype.hasOwnProperty.call(l,"default")?l.default:l}var Yg=Dd;function Dd(l,o,c,p){this.cx=3*l,this.bx=3*(c-l)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*o,this.by=3*(p-o)-this.cy,this.ay=1-this.cy-this.by,this.p1x=l,this.p1y=o,this.p2x=c,this.p2y=p}Dd.prototype={sampleCurveX:function(l){return((this.ax*l+this.bx)*l+this.cx)*l},sampleCurveY:function(l){return((this.ay*l+this.by)*l+this.cy)*l},sampleCurveDerivativeX:function(l){return(3*this.ax*l+2*this.bx)*l+this.cx},solveCurveX:function(l,o){if(o===void 0&&(o=1e-6),l<0)return 0;if(l>1)return 1;for(var c=l,p=0;p<8;p++){var g=this.sampleCurveX(c)-l;if(Math.abs(g)g?x=c:I=c,c=.5*(I-x)+x;return c},solve:function(l,o){return this.sampleCurveY(this.solveCurveX(l,o))}};var Kg=$g(Yg);function xl(l,o,c){return l+c*(o-l)}function $c(l,o,c){return l.map((p,g)=>xl(p,o[g],c))}const ro={number:xl,color:function(l,o,c,p="rgb"){switch(p){case"rgb":{const[g,b,x,I]=$c(l.rgb,o.rgb,c);return new Zn(g,b,x,I,!1)}case"hcl":{const[g,b,x,I]=l.hcl,[L,k,N,z]=o.hcl;let q,H;if(isNaN(g)||isNaN(L))isNaN(g)?isNaN(L)?q=NaN:(q=L,x!==1&&x!==0||(H=k)):(q=g,N!==1&&N!==0||(H=b));else{let Dt=L-g;L>g&&Dt>180?Dt-=360:L180&&(Dt+=360),q=g+c*Dt}const[Y,et,at,gt]=function([Dt,xt,Lt,Kt]){return Dt=isNaN(Dt)?0:Dt*rn,Pi([Lt,Math.cos(Dt)*xt,Math.sin(Dt)*xt,Kt])}([q,H??xl(b,k,c),xl(x,N,c),xl(I,z,c)]);return new Zn(Y,et,at,gt,!1)}case"lab":{const[g,b,x,I]=Pi($c(l.lab,o.lab,c));return new Zn(g,b,x,I,!1)}}},array:$c,padding:function(l,o,c){return new _o($c(l.values,o.values,c))},variableAnchorOffsetCollection:function(l,o,c){const p=l.values,g=o.values;if(p.length!==g.length)throw new xi(`Cannot interpolate values of different length. from: ${l.toString()}, to: ${o.toString()}`);const b=[];for(let x=0;xtypeof N!="number"||N<0||N>1))return c.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);g={name:"cubic-bezier",controlPoints:k}}}if(o.length-1<4)return c.error(`Expected at least 4 arguments, but found only ${o.length-1}.`);if((o.length-1)%2!=0)return c.error("Expected an even number of arguments.");if(b=c.parse(b,2,fe),!b)return null;const I=[];let L=null;p==="interpolate-hcl"||p==="interpolate-lab"?L=Fi:c.expectedType&&c.expectedType.kind!=="value"&&(L=c.expectedType);for(let k=0;k=N)return c.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',q);const Y=c.parse(z,H,L);if(!Y)return null;L=L||Y.type,I.push([N,Y])}return At(L,fe)||At(L,Fi)||At(L,lt)||At(L,W)||At(L,K(fe))?new Gr(L,p,g,b,I):c.error(`Type ${nt(L)} is not interpolatable.`)}evaluate(o){const c=this.labels,p=this.outputs;if(c.length===1)return p[0].evaluate(o);const g=this.input.evaluate(o);if(g<=c[0])return p[0].evaluate(o);const b=c.length;if(g>=c[b-1])return p[b-1].evaluate(o);const x=Ku(c,g),I=Gr.interpolationFactor(this.interpolation,g,c[x],c[x+1]),L=p[x].evaluate(o),k=p[x+1].evaluate(o);switch(this.operator){case"interpolate":return ro[this.type.kind](L,k,I);case"interpolate-hcl":return ro.color(L,k,I,"hcl");case"interpolate-lab":return ro.color(L,k,I,"lab")}}eachChild(o){o(this.input);for(const c of this.outputs)o(c)}outputDefined(){return this.outputs.every(o=>o.outputDefined())}}function Fn(l,o,c,p){const g=p-c,b=l-c;return g===0?0:o===1?b/g:(Math.pow(o,b)-1)/(Math.pow(o,g)-1)}class Yc{constructor(o,c){this.type=o,this.args=c}static parse(o,c){if(o.length<2)return c.error("Expectected at least one argument.");let p=null;const g=c.expectedType;g&&g.kind!=="value"&&(p=g);const b=[];for(const I of o.slice(1)){const L=c.parse(I,1+b.length,p,void 0,{typeAnnotation:"omit"});if(!L)return null;p=p||L.type,b.push(L)}if(!p)throw new Error("No output type");const x=g&&b.some(I=>J(g,I.type));return new Yc(x?sn:p,b)}evaluate(o){let c,p=null,g=0;for(const b of this.args)if(g++,p=b.evaluate(o),p&&p instanceof os&&!p.available&&(c||(c=p.name),p=null,g===this.args.length&&(p=c)),p!==null)break;return p}eachChild(o){this.args.forEach(o)}outputDefined(){return this.args.every(o=>o.outputDefined())}}class Kc{constructor(o,c){this.type=c.type,this.bindings=[].concat(o),this.result=c}evaluate(o){return this.result.evaluate(o)}eachChild(o){for(const c of this.bindings)o(c[1]);o(this.result)}static parse(o,c){if(o.length<4)return c.error(`Expected at least 3 arguments, but found ${o.length-1} instead.`);const p=[];for(let b=1;b=p.length)throw new xi(`Array index out of bounds: ${c} > ${p.length-1}.`);if(c!==Math.floor(c))throw new xi(`Array index must be an integer, but found ${c} instead.`);return p[c]}eachChild(o){o(this.index),o(this.input)}outputDefined(){return!1}}class Mf{constructor(o,c){this.type=an,this.needle=o,this.haystack=c}static parse(o,c){if(o.length!==3)return c.error(`Expected 2 arguments, but found ${o.length-1} instead.`);const p=c.parse(o[1],1,sn),g=c.parse(o[2],2,sn);return p&&g?Tt(p.type,[an,un,fe,Qi,sn])?new Mf(p,g):c.error(`Expected first argument to be of type boolean, string, number or null, but found ${nt(p.type)} instead`):null}evaluate(o){const c=this.needle.evaluate(o),p=this.haystack.evaluate(o);if(!p)return!1;if(!_t(c,["boolean","string","number","null"]))throw new xi(`Expected first argument to be of type boolean, string, number or null, but found ${nt(er(c))} instead.`);if(!_t(p,["string","array"]))throw new xi(`Expected second argument to be of type array or string, but found ${nt(er(p))} instead.`);return p.indexOf(c)>=0}eachChild(o){o(this.needle),o(this.haystack)}outputDefined(){return!0}}class Jc{constructor(o,c,p){this.type=fe,this.needle=o,this.haystack=c,this.fromIndex=p}static parse(o,c){if(o.length<=2||o.length>=5)return c.error(`Expected 3 or 4 arguments, but found ${o.length-1} instead.`);const p=c.parse(o[1],1,sn),g=c.parse(o[2],2,sn);if(!p||!g)return null;if(!Tt(p.type,[an,un,fe,Qi,sn]))return c.error(`Expected first argument to be of type boolean, string, number or null, but found ${nt(p.type)} instead`);if(o.length===4){const b=c.parse(o[3],3,fe);return b?new Jc(p,g,b):null}return new Jc(p,g)}evaluate(o){const c=this.needle.evaluate(o),p=this.haystack.evaluate(o);if(!_t(c,["boolean","string","number","null"]))throw new xi(`Expected first argument to be of type boolean, string, number or null, but found ${nt(er(c))} instead.`);if(!_t(p,["string","array"]))throw new xi(`Expected second argument to be of type array or string, but found ${nt(er(p))} instead.`);if(this.fromIndex){const g=this.fromIndex.evaluate(o);return p.indexOf(c,g)}return p.indexOf(c)}eachChild(o){o(this.needle),o(this.haystack),this.fromIndex&&o(this.fromIndex)}outputDefined(){return!1}}class Pf{constructor(o,c,p,g,b,x){this.inputType=o,this.type=c,this.input=p,this.cases=g,this.outputs=b,this.otherwise=x}static parse(o,c){if(o.length<5)return c.error(`Expected at least 4 arguments, but found only ${o.length-1}.`);if(o.length%2!=1)return c.error("Expected an even number of arguments.");let p,g;c.expectedType&&c.expectedType.kind!=="value"&&(g=c.expectedType);const b={},x=[];for(let k=2;kNumber.MAX_SAFE_INTEGER)return q.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if(typeof Y=="number"&&Math.floor(Y)!==Y)return q.error("Numeric branch labels must be integer values.");if(p){if(q.checkSubtype(p,er(Y)))return null}else p=er(Y);if(b[String(Y)]!==void 0)return q.error("Branch labels must be unique.");b[String(Y)]=x.length}const H=c.parse(z,k,g);if(!H)return null;g=g||H.type,x.push(H)}const I=c.parse(o[1],1,sn);if(!I)return null;const L=c.parse(o[o.length-1],o.length-1,g);return L?I.type.kind!=="value"&&c.concat(1).checkSubtype(p,I.type)?null:new Pf(p,g,I,b,x,L):null}evaluate(o){const c=this.input.evaluate(o);return(er(c)===this.inputType&&this.outputs[this.cases[c]]||this.otherwise).evaluate(o)}eachChild(o){o(this.input),this.outputs.forEach(o),o(this.otherwise)}outputDefined(){return this.outputs.every(o=>o.outputDefined())&&this.otherwise.outputDefined()}}class kf{constructor(o,c,p){this.type=o,this.branches=c,this.otherwise=p}static parse(o,c){if(o.length<4)return c.error(`Expected at least 3 arguments, but found only ${o.length-1}.`);if(o.length%2!=0)return c.error("Expected an odd number of arguments.");let p;c.expectedType&&c.expectedType.kind!=="value"&&(p=c.expectedType);const g=[];for(let x=1;xc.outputDefined())&&this.otherwise.outputDefined()}}class Qc{constructor(o,c,p,g){this.type=o,this.input=c,this.beginIndex=p,this.endIndex=g}static parse(o,c){if(o.length<=2||o.length>=5)return c.error(`Expected 3 or 4 arguments, but found ${o.length-1} instead.`);const p=c.parse(o[1],1,sn),g=c.parse(o[2],2,fe);if(!p||!g)return null;if(!Tt(p.type,[K(sn),un,sn]))return c.error(`Expected first argument to be of type array or string, but found ${nt(p.type)} instead`);if(o.length===4){const b=c.parse(o[3],3,fe);return b?new Qc(p.type,p,g,b):null}return new Qc(p.type,p,g)}evaluate(o){const c=this.input.evaluate(o),p=this.beginIndex.evaluate(o);if(!_t(c,["string","array"]))throw new xi(`Expected first argument to be of type array or string, but found ${nt(er(c))} instead.`);if(this.endIndex){const g=this.endIndex.evaluate(o);return c.slice(p,g)}return c.slice(p)}eachChild(o){o(this.input),o(this.beginIndex),this.endIndex&&o(this.endIndex)}outputDefined(){return!1}}function Rd(l,o){return l==="=="||l==="!="?o.kind==="boolean"||o.kind==="string"||o.kind==="number"||o.kind==="null"||o.kind==="value":o.kind==="string"||o.kind==="number"||o.kind==="value"}function Nd(l,o,c,p){return p.compare(o,c)===0}function tu(l,o,c){const p=l!=="=="&&l!=="!=";return class _x{constructor(b,x,I){this.type=an,this.lhs=b,this.rhs=x,this.collator=I,this.hasUntypedArgument=b.type.kind==="value"||x.type.kind==="value"}static parse(b,x){if(b.length!==3&&b.length!==4)return x.error("Expected two or three arguments.");const I=b[0];let L=x.parse(b[1],1,sn);if(!L)return null;if(!Rd(I,L.type))return x.concat(1).error(`"${I}" comparisons are not supported for type '${nt(L.type)}'.`);let k=x.parse(b[2],2,sn);if(!k)return null;if(!Rd(I,k.type))return x.concat(2).error(`"${I}" comparisons are not supported for type '${nt(k.type)}'.`);if(L.type.kind!==k.type.kind&&L.type.kind!=="value"&&k.type.kind!=="value")return x.error(`Cannot compare types '${nt(L.type)}' and '${nt(k.type)}'.`);p&&(L.type.kind==="value"&&k.type.kind!=="value"?L=new No(k.type,[L]):L.type.kind!=="value"&&k.type.kind==="value"&&(k=new No(L.type,[k])));let N=null;if(b.length===4){if(L.type.kind!=="string"&&k.type.kind!=="string"&&L.type.kind!=="value"&&k.type.kind!=="value")return x.error("Cannot use collator to compare non-string types.");if(N=x.parse(b[3],3,ba),!N)return null}return new _x(L,k,N)}evaluate(b){const x=this.lhs.evaluate(b),I=this.rhs.evaluate(b);if(p&&this.hasUntypedArgument){const L=er(x),k=er(I);if(L.kind!==k.kind||L.kind!=="string"&&L.kind!=="number")throw new xi(`Expected arguments for "${l}" to be (string, string) or (number, number), but found (${L.kind}, ${k.kind}) instead.`)}if(this.collator&&!p&&this.hasUntypedArgument){const L=er(x),k=er(I);if(L.kind!=="string"||k.kind!=="string")return o(b,x,I)}return this.collator?c(b,x,I,this.collator.evaluate(b)):o(b,x,I)}eachChild(b){b(this.lhs),b(this.rhs),this.collator&&b(this.collator)}outputDefined(){return!0}}}const Jg=tu("==",function(l,o,c){return o===c},Nd),Qg=tu("!=",function(l,o,c){return o!==c},function(l,o,c,p){return!Nd(0,o,c,p)}),t_=tu("<",function(l,o,c){return o",function(l,o,c){return o>c},function(l,o,c,p){return p.compare(o,c)>0}),n_=tu("<=",function(l,o,c){return o<=c},function(l,o,c,p){return p.compare(o,c)<=0}),i_=tu(">=",function(l,o,c){return o>=c},function(l,o,c,p){return p.compare(o,c)>=0});class Af{constructor(o,c,p,g,b){this.type=un,this.number=o,this.locale=c,this.currency=p,this.minFractionDigits=g,this.maxFractionDigits=b}static parse(o,c){if(o.length!==3)return c.error("Expected two arguments.");const p=c.parse(o[1],1,fe);if(!p)return null;const g=o[2];if(typeof g!="object"||Array.isArray(g))return c.error("NumberFormat options argument must be an object.");let b=null;if(g.locale&&(b=c.parse(g.locale,1,un),!b))return null;let x=null;if(g.currency&&(x=c.parse(g.currency,1,un),!x))return null;let I=null;if(g["min-fraction-digits"]&&(I=c.parse(g["min-fraction-digits"],1,fe),!I))return null;let L=null;return g["max-fraction-digits"]&&(L=c.parse(g["max-fraction-digits"],1,fe),!L)?null:new Af(p,b,x,I,L)}evaluate(o){return new Intl.NumberFormat(this.locale?this.locale.evaluate(o):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(o):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(o):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(o):void 0}).format(this.number.evaluate(o))}eachChild(o){o(this.number),this.locale&&o(this.locale),this.currency&&o(this.currency),this.minFractionDigits&&o(this.minFractionDigits),this.maxFractionDigits&&o(this.maxFractionDigits)}outputDefined(){return!1}}class th{constructor(o){this.type=ji,this.sections=o}static parse(o,c){if(o.length<2)return c.error("Expected at least one argument.");const p=o[1];if(!Array.isArray(p)&&typeof p=="object")return c.error("First argument must be an image or text section.");const g=[];let b=!1;for(let x=1;x<=o.length-1;++x){const I=o[x];if(b&&typeof I=="object"&&!Array.isArray(I)){b=!1;let L=null;if(I["font-scale"]&&(L=c.parse(I["font-scale"],1,fe),!L))return null;let k=null;if(I["text-font"]&&(k=c.parse(I["text-font"],1,K(un)),!k))return null;let N=null;if(I["text-color"]&&(N=c.parse(I["text-color"],1,Fi),!N))return null;const z=g[g.length-1];z.scale=L,z.font=k,z.textColor=N}else{const L=c.parse(o[x],1,sn);if(!L)return null;const k=L.type.kind;if(k!=="string"&&k!=="value"&&k!=="null"&&k!=="resolvedImage")return c.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");b=!0,g.push({content:L,scale:null,font:null,textColor:null})}}return new th(g)}evaluate(o){return new Ro(this.sections.map(c=>{const p=c.content.evaluate(o);return er(p)===j?new Tf("",p,null,null,null):new Tf(Zu(p),null,c.scale?c.scale.evaluate(o):null,c.font?c.font.evaluate(o).join(","):null,c.textColor?c.textColor.evaluate(o):null)}))}eachChild(o){for(const c of this.sections)o(c.content),c.scale&&o(c.scale),c.font&&o(c.font),c.textColor&&o(c.textColor)}outputDefined(){return!1}}class Df{constructor(o){this.type=j,this.input=o}static parse(o,c){if(o.length!==2)return c.error("Expected two arguments.");const p=c.parse(o[1],1,un);return p?new Df(p):c.error("No image name provided.")}evaluate(o){const c=this.input.evaluate(o),p=os.fromString(c);return p&&o.availableImages&&(p.available=o.availableImages.indexOf(c)>-1),p}eachChild(o){o(this.input)}outputDefined(){return!1}}class Rf{constructor(o){this.type=fe,this.input=o}static parse(o,c){if(o.length!==2)return c.error(`Expected 1 argument, but found ${o.length-1} instead.`);const p=c.parse(o[1],1);return p?p.type.kind!=="array"&&p.type.kind!=="string"&&p.type.kind!=="value"?c.error(`Expected argument of type string or array, but found ${nt(p.type)} instead.`):new Rf(p):null}evaluate(o){const c=this.input.evaluate(o);if(typeof c=="string"||Array.isArray(c))return c.length;throw new xi(`Expected value to be of type string or array, but found ${nt(er(c))} instead.`)}eachChild(o){o(this.input)}outputDefined(){return!1}}const eu={"==":Jg,"!=":Qg,">":e_,"<":t_,">=":i_,"<=":n_,array:No,at:Lf,boolean:No,case:kf,coalesce:Yc,collator:Ql,format:th,image:Df,in:Mf,"index-of":Jc,interpolate:Gr,"interpolate-hcl":Gr,"interpolate-lab":Gr,length:Rf,let:Kc,literal:qa,match:Pf,number:No,"number-format":Af,object:No,slice:Qc,step:Ju,string:No,"to-boolean":qs,"to-color":qs,"to-number":qs,"to-string":qs,var:Hc,within:bl};function Od(l,[o,c,p,g]){o=o.evaluate(l),c=c.evaluate(l),p=p.evaluate(l);const b=g?g.evaluate(l):1,x=Jl(o,c,p,b);if(x)throw new xi(x);return new Zn(o/255,c/255,p/255,b,!1)}function zd(l,o){return l in o}function Nf(l,o){const c=o[l];return c===void 0?null:c}function wl(l){return{type:l}}function Fd(l){return{result:"success",value:l}}function nu(l){return{result:"error",value:l}}function iu(l){return l["property-type"]==="data-driven"||l["property-type"]==="cross-faded-data-driven"}function Bd(l){return!!l.expression&&l.expression.parameters.indexOf("zoom")>-1}function Of(l){return!!l.expression&&l.expression.interpolated}function An(l){return l instanceof Number?"number":l instanceof String?"string":l instanceof Boolean?"boolean":Array.isArray(l)?"array":l===null?"null":typeof l}function eh(l){return typeof l=="object"&&l!==null&&!Array.isArray(l)}function r_(l){return l}function Vd(l,o){const c=o.type==="color",p=l.stops&&typeof l.stops[0][0]=="object",g=p||!(p||l.property!==void 0),b=l.type||(Of(o)?"exponential":"interval");if(c||o.type==="padding"){const N=c?Zn.parse:_o.parse;(l=ns({},l)).stops&&(l.stops=l.stops.map(z=>[z[0],N(z[1])])),l.default=N(l.default?l.default:o.default)}if(l.colorSpace&&(x=l.colorSpace)!=="rgb"&&x!=="hcl"&&x!=="lab")throw new Error(`Unknown color space: "${l.colorSpace}"`);var x;let I,L,k;if(b==="exponential")I=Tn;else if(b==="interval")I=o_;else if(b==="categorical"){I=qi,L=Object.create(null);for(const N of l.stops)L[N[0]]=N[1];k=typeof l.stops[0][0]}else{if(b!=="identity")throw new Error(`Unknown function type "${b}"`);I=zf}if(p){const N={},z=[];for(let Y=0;YY[0]),evaluate:({zoom:Y},et)=>Tn({stops:q,base:l.base},o,Y).evaluate(Y,et)}}if(g){const N=b==="exponential"?{name:"exponential",base:l.base!==void 0?l.base:1}:null;return{kind:"camera",interpolationType:N,interpolationFactor:Gr.interpolationFactor.bind(void 0,N),zoomStops:l.stops.map(z=>z[0]),evaluate:({zoom:z})=>I(l,o,z,L,k)}}return{kind:"source",evaluate(N,z){const q=z&&z.properties?z.properties[l.property]:void 0;return q===void 0?Qu(l.default,o.default):I(l,o,q,L,k)}}}function Qu(l,o,c){return l!==void 0?l:o!==void 0?o:c!==void 0?c:void 0}function qi(l,o,c,p,g){return Qu(typeof c===g?p[c]:void 0,l.default,o.default)}function o_(l,o,c){if(An(c)!=="number")return Qu(l.default,o.default);const p=l.stops.length;if(p===1||c<=l.stops[0][0])return l.stops[0][1];if(c>=l.stops[p-1][0])return l.stops[p-1][1];const g=Ku(l.stops.map(b=>b[0]),c);return l.stops[g][1]}function Tn(l,o,c){const p=l.base!==void 0?l.base:1;if(An(c)!=="number")return Qu(l.default,o.default);const g=l.stops.length;if(g===1||c<=l.stops[0][0])return l.stops[0][1];if(c>=l.stops[g-1][0])return l.stops[g-1][1];const b=Ku(l.stops.map(N=>N[0]),c),x=function(N,z,q,H){const Y=H-q,et=N-q;return Y===0?0:z===1?et/Y:(Math.pow(z,et)-1)/(Math.pow(z,Y)-1)}(c,p,l.stops[b][0],l.stops[b+1][0]),I=l.stops[b][1],L=l.stops[b+1][1],k=ro[o.type]||r_;return typeof I.evaluate=="function"?{evaluate(...N){const z=I.evaluate.apply(void 0,N),q=L.evaluate.apply(void 0,N);if(z!==void 0&&q!==void 0)return k(z,q,x,l.colorSpace)}}:k(I,L,x,l.colorSpace)}function zf(l,o,c){switch(o.type){case"color":c=Zn.parse(c);break;case"formatted":c=Ro.fromString(c.toString());break;case"resolvedImage":c=os.fromString(c.toString());break;case"padding":c=_o.parse(c);break;default:An(c)===o.type||o.type==="enum"&&o.values[c]||(c=void 0)}return Qu(c,l.default,o.default)}Oo.register(eu,{error:[{kind:"error"},[un],(l,[o])=>{throw new xi(o.evaluate(l))}],typeof:[un,[sn],(l,[o])=>nt(er(o.evaluate(l)))],"to-rgba":[K(fe,4),[Fi],(l,[o])=>{const[c,p,g,b]=o.evaluate(l).rgb;return[255*c,255*p,255*g,b]}],rgb:[Fi,[fe,fe,fe],Od],rgba:[Fi,[fe,fe,fe,fe],Od],has:{type:an,overloads:[[[un],(l,[o])=>zd(o.evaluate(l),l.properties())],[[un,is],(l,[o,c])=>zd(o.evaluate(l),c.evaluate(l))]]},get:{type:sn,overloads:[[[un],(l,[o])=>Nf(o.evaluate(l),l.properties())],[[un,is],(l,[o,c])=>Nf(o.evaluate(l),c.evaluate(l))]]},"feature-state":[sn,[un],(l,[o])=>Nf(o.evaluate(l),l.featureState||{})],properties:[is,[],l=>l.properties()],"geometry-type":[un,[],l=>l.geometryType()],id:[sn,[],l=>l.id()],zoom:[fe,[],l=>l.globals.zoom],"heatmap-density":[fe,[],l=>l.globals.heatmapDensity||0],"line-progress":[fe,[],l=>l.globals.lineProgress||0],accumulated:[sn,[],l=>l.globals.accumulated===void 0?null:l.globals.accumulated],"+":[fe,wl(fe),(l,o)=>{let c=0;for(const p of o)c+=p.evaluate(l);return c}],"*":[fe,wl(fe),(l,o)=>{let c=1;for(const p of o)c*=p.evaluate(l);return c}],"-":{type:fe,overloads:[[[fe,fe],(l,[o,c])=>o.evaluate(l)-c.evaluate(l)],[[fe],(l,[o])=>-o.evaluate(l)]]},"/":[fe,[fe,fe],(l,[o,c])=>o.evaluate(l)/c.evaluate(l)],"%":[fe,[fe,fe],(l,[o,c])=>o.evaluate(l)%c.evaluate(l)],ln2:[fe,[],()=>Math.LN2],pi:[fe,[],()=>Math.PI],e:[fe,[],()=>Math.E],"^":[fe,[fe,fe],(l,[o,c])=>Math.pow(o.evaluate(l),c.evaluate(l))],sqrt:[fe,[fe],(l,[o])=>Math.sqrt(o.evaluate(l))],log10:[fe,[fe],(l,[o])=>Math.log(o.evaluate(l))/Math.LN10],ln:[fe,[fe],(l,[o])=>Math.log(o.evaluate(l))],log2:[fe,[fe],(l,[o])=>Math.log(o.evaluate(l))/Math.LN2],sin:[fe,[fe],(l,[o])=>Math.sin(o.evaluate(l))],cos:[fe,[fe],(l,[o])=>Math.cos(o.evaluate(l))],tan:[fe,[fe],(l,[o])=>Math.tan(o.evaluate(l))],asin:[fe,[fe],(l,[o])=>Math.asin(o.evaluate(l))],acos:[fe,[fe],(l,[o])=>Math.acos(o.evaluate(l))],atan:[fe,[fe],(l,[o])=>Math.atan(o.evaluate(l))],min:[fe,wl(fe),(l,o)=>Math.min(...o.map(c=>c.evaluate(l)))],max:[fe,wl(fe),(l,o)=>Math.max(...o.map(c=>c.evaluate(l)))],abs:[fe,[fe],(l,[o])=>Math.abs(o.evaluate(l))],round:[fe,[fe],(l,[o])=>{const c=o.evaluate(l);return c<0?-Math.round(-c):Math.round(c)}],floor:[fe,[fe],(l,[o])=>Math.floor(o.evaluate(l))],ceil:[fe,[fe],(l,[o])=>Math.ceil(o.evaluate(l))],"filter-==":[an,[un,sn],(l,[o,c])=>l.properties()[o.value]===c.value],"filter-id-==":[an,[sn],(l,[o])=>l.id()===o.value],"filter-type-==":[an,[un],(l,[o])=>l.geometryType()===o.value],"filter-<":[an,[un,sn],(l,[o,c])=>{const p=l.properties()[o.value],g=c.value;return typeof p==typeof g&&p{const c=l.id(),p=o.value;return typeof c==typeof p&&c":[an,[un,sn],(l,[o,c])=>{const p=l.properties()[o.value],g=c.value;return typeof p==typeof g&&p>g}],"filter-id->":[an,[sn],(l,[o])=>{const c=l.id(),p=o.value;return typeof c==typeof p&&c>p}],"filter-<=":[an,[un,sn],(l,[o,c])=>{const p=l.properties()[o.value],g=c.value;return typeof p==typeof g&&p<=g}],"filter-id-<=":[an,[sn],(l,[o])=>{const c=l.id(),p=o.value;return typeof c==typeof p&&c<=p}],"filter->=":[an,[un,sn],(l,[o,c])=>{const p=l.properties()[o.value],g=c.value;return typeof p==typeof g&&p>=g}],"filter-id->=":[an,[sn],(l,[o])=>{const c=l.id(),p=o.value;return typeof c==typeof p&&c>=p}],"filter-has":[an,[sn],(l,[o])=>o.value in l.properties()],"filter-has-id":[an,[],l=>l.id()!==null&&l.id()!==void 0],"filter-type-in":[an,[K(un)],(l,[o])=>o.value.indexOf(l.geometryType())>=0],"filter-id-in":[an,[K(sn)],(l,[o])=>o.value.indexOf(l.id())>=0],"filter-in-small":[an,[un,K(sn)],(l,[o,c])=>c.value.indexOf(l.properties()[o.value])>=0],"filter-in-large":[an,[un,K(sn)],(l,[o,c])=>function(p,g,b,x){for(;b<=x;){const I=b+x>>1;if(g[I]===p)return!0;g[I]>p?x=I-1:b=I+1}return!1}(l.properties()[o.value],c.value,0,c.value.length-1)],all:{type:an,overloads:[[[an,an],(l,[o,c])=>o.evaluate(l)&&c.evaluate(l)],[wl(an),(l,o)=>{for(const c of o)if(!c.evaluate(l))return!1;return!0}]]},any:{type:an,overloads:[[[an,an],(l,[o,c])=>o.evaluate(l)||c.evaluate(l)],[wl(an),(l,o)=>{for(const c of o)if(c.evaluate(l))return!0;return!1}]]},"!":[an,[an],(l,[o])=>!o.evaluate(l)],"is-supported-script":[an,[un],(l,[o])=>{const c=l.globals&&l.globals.isSupportedScript;return!c||c(o.evaluate(l))}],upcase:[un,[un],(l,[o])=>o.evaluate(l).toUpperCase()],downcase:[un,[un],(l,[o])=>o.evaluate(l).toLowerCase()],concat:[un,wl(sn),(l,o)=>o.map(c=>Zu(c.evaluate(l))).join("")],"resolved-locale":[un,[ba],(l,[o])=>o.evaluate(l).resolvedLocale()]});class ui{constructor(o,c){var p;this.expression=o,this._warningHistory={},this._evaluator=new Wn,this._defaultValue=c?(p=c).type==="color"&&eh(p.default)?new Zn(0,0,0,0):p.type==="color"?Zn.parse(p.default)||null:p.type==="padding"?_o.parse(p.default)||null:p.type==="variableAnchorOffsetCollection"?rs.parse(p.default)||null:p.default===void 0?null:p.default:null,this._enumValues=c&&c.type==="enum"?c.values:null}evaluateWithoutErrorHandling(o,c,p,g,b,x){return this._evaluator.globals=o,this._evaluator.feature=c,this._evaluator.featureState=p,this._evaluator.canonical=g,this._evaluator.availableImages=b||null,this._evaluator.formattedSection=x,this.expression.evaluate(this._evaluator)}evaluate(o,c,p,g,b,x){this._evaluator.globals=o,this._evaluator.feature=c||null,this._evaluator.featureState=p||null,this._evaluator.canonical=g,this._evaluator.availableImages=b||null,this._evaluator.formattedSection=x||null;try{const I=this.expression.evaluate(this._evaluator);if(I==null||typeof I=="number"&&I!=I)return this._defaultValue;if(this._enumValues&&!(I in this._enumValues))throw new xi(`Expected value to be one of ${Object.keys(this._enumValues).map(L=>JSON.stringify(L)).join(", ")}, but found ${JSON.stringify(I)} instead.`);return I}catch(I){return this._warningHistory[I.message]||(this._warningHistory[I.message]=!0,typeof console<"u"&&console.warn(I.message)),this._defaultValue}}}function ni(l){return Array.isArray(l)&&l.length>0&&typeof l[0]=="string"&&l[0]in eu}function Sl(l,o){const c=new Gc(eu,Xu,[],o?function(g){const b={color:Fi,string:un,number:fe,enum:un,boolean:an,formatted:ji,padding:lt,resolvedImage:j,variableAnchorOffsetCollection:W};return g.type==="array"?K(b[g.value]||sn,g.length):b[g.type]}(o):void 0),p=c.parse(l,void 0,void 0,void 0,o&&o.type==="string"?{typeAnnotation:"coerce"}:void 0);return p?Fd(new ui(p,o)):nu(c.errors)}class nh{constructor(o,c){this.kind=o,this._styleExpression=c,this.isStateDependent=o!=="constant"&&!$u(c.expression)}evaluateWithoutErrorHandling(o,c,p,g,b,x){return this._styleExpression.evaluateWithoutErrorHandling(o,c,p,g,b,x)}evaluate(o,c,p,g,b,x){return this._styleExpression.evaluate(o,c,p,g,b,x)}}class Ff{constructor(o,c,p,g){this.kind=o,this.zoomStops=p,this._styleExpression=c,this.isStateDependent=o!=="camera"&&!$u(c.expression),this.interpolationType=g}evaluateWithoutErrorHandling(o,c,p,g,b,x){return this._styleExpression.evaluateWithoutErrorHandling(o,c,p,g,b,x)}evaluate(o,c,p,g,b,x){return this._styleExpression.evaluate(o,c,p,g,b,x)}interpolationFactor(o,c,p){return this.interpolationType?Gr.interpolationFactor(this.interpolationType,o,c,p):0}}function Ud(l,o){const c=Sl(l,o);if(c.result==="error")return c;const p=c.value.expression,g=Xc(p);if(!g&&!iu(o))return nu([new no("","data expressions not supported")]);const b=Yu(p,["zoom"]);if(!b&&!Bd(o))return nu([new no("","zoom expressions not supported")]);const x=rh(p);return x||b?x instanceof no?nu([x]):x instanceof Gr&&!Of(o)?nu([new no("",'"interpolate" expressions cannot be used with this property')]):Fd(x?new Ff(g?"camera":"composite",c.value,x.labels,x instanceof Gr?x.interpolation:void 0):new nh(g?"constant":"source",c.value)):nu([new no("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}class ih{constructor(o,c){this._parameters=o,this._specification=c,ns(this,Vd(this._parameters,this._specification))}static deserialize(o){return new ih(o._parameters,o._specification)}static serialize(o){return{_parameters:o._parameters,_specification:o._specification}}}function rh(l){let o=null;if(l instanceof Kc)o=rh(l.result);else if(l instanceof Yc){for(const c of l.args)if(o=rh(c),o)break}else(l instanceof Ju||l instanceof Gr)&&l.input instanceof Oo&&l.input.name==="zoom"&&(o=l);return o instanceof no||l.eachChild(c=>{const p=rh(c);p instanceof no?o=p:!o&&p?o=new no("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):o&&p&&o!==p&&(o=new no("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))}),o}function oh(l){if(l===!0||l===!1)return!0;if(!Array.isArray(l)||l.length===0)return!1;switch(l[0]){case"has":return l.length>=2&&l[1]!=="$id"&&l[1]!=="$type";case"in":return l.length>=3&&(typeof l[1]!="string"||Array.isArray(l[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return l.length!==3||Array.isArray(l[1])||Array.isArray(l[2]);case"any":case"all":for(const o of l.slice(1))if(!oh(o)&&typeof o!="boolean")return!1;return!0;default:return!0}}const Gd={type:"boolean",default:!1,transition:!1,"property-type":"data-driven",expression:{interpolated:!1,parameters:["zoom","feature"]}};function sh(l){if(l==null)return{filter:()=>!0,needGeometry:!1};oh(l)||(l=lh(l));const o=Sl(l,Gd);if(o.result==="error")throw new Error(o.value.map(c=>`${c.key}: ${c.message}`).join(", "));return{filter:(c,p,g)=>o.value.evaluate(c,p,{},g),needGeometry:ah(l)}}function jd(l,o){return lo?1:0}function ah(l){if(!Array.isArray(l))return!1;if(l[0]==="within")return!0;for(let o=1;o"||o==="<="||o===">="?Bf(l[1],l[2],o):o==="any"?(c=l.slice(1),["any"].concat(c.map(lh))):o==="all"?["all"].concat(l.slice(1).map(lh)):o==="none"?["all"].concat(l.slice(1).map(lh).map(uh)):o==="in"?qd(l[1],l.slice(2)):o==="!in"?uh(qd(l[1],l.slice(2))):o==="has"?Zd(l[1]):o==="!has"?uh(Zd(l[1])):o!=="within"||l;var c}function Bf(l,o,c){switch(l){case"$type":return[`filter-type-${c}`,o];case"$id":return[`filter-id-${c}`,o];default:return[`filter-${c}`,l,o]}}function qd(l,o){if(o.length===0)return!1;switch(l){case"$type":return["filter-type-in",["literal",o]];case"$id":return["filter-id-in",["literal",o]];default:return o.length>200&&!o.some(c=>typeof c!=typeof o[0])?["filter-in-large",l,["literal",o.sort(jd)]]:["filter-in-small",l,["literal",o]]}}function Zd(l){switch(l){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",l]}}function uh(l){return["!",l]}function Vf(l){const o=typeof l;if(o==="number"||o==="boolean"||o==="string"||l==null)return JSON.stringify(l);if(Array.isArray(l)){let g="[";for(const b of l)g+=`${Vf(b)},`;return`${g}]`}const c=Object.keys(l).sort();let p="{";for(let g=0;gp.maximum?[new se(o,c,`${c} is greater than the maximum value ${p.maximum}`)]:[]}function Hd(l){const o=l.valueSpec,c=ki(l.value.type);let p,g,b,x={};const I=c!=="categorical"&&l.value.property===void 0,L=!I,k=An(l.value.stops)==="array"&&An(l.value.stops[0])==="array"&&An(l.value.stops[0][0])==="object",N=oo({key:l.key,value:l.value,valueSpec:l.styleSpec.function,validateSpec:l.validateSpec,style:l.style,styleSpec:l.styleSpec,objectElementValidators:{stops:function(H){if(c==="identity")return[new se(H.key,H.value,'identity function may not have a "stops" property')];let Y=[];const et=H.value;return Y=Y.concat(Uf({key:H.key,value:et,valueSpec:H.valueSpec,validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec,arrayElementValidator:z})),An(et)==="array"&&et.length===0&&Y.push(new se(H.key,et,"array must have at least one stop")),Y},default:function(H){return H.validateSpec({key:H.key,value:H.value,valueSpec:o,validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec})}}});return c==="identity"&&I&&N.push(new se(l.key,l.value,'missing required property "property"')),c==="identity"||l.value.stops||N.push(new se(l.key,l.value,'missing required property "stops"')),c==="exponential"&&l.valueSpec.expression&&!Of(l.valueSpec)&&N.push(new se(l.key,l.value,"exponential functions not supported")),l.styleSpec.$version>=8&&(L&&!iu(l.valueSpec)?N.push(new se(l.key,l.value,"property functions not supported")):I&&!Bd(l.valueSpec)&&N.push(new se(l.key,l.value,"zoom functions not supported"))),c!=="categorical"&&!k||l.value.property!==void 0||N.push(new se(l.key,l.value,'"property" property is required')),N;function z(H){let Y=[];const et=H.value,at=H.key;if(An(et)!=="array")return[new se(at,et,`array expected, ${An(et)} found`)];if(et.length!==2)return[new se(at,et,`array length 2 expected, length ${et.length} found`)];if(k){if(An(et[0])!=="object")return[new se(at,et,`object expected, ${An(et[0])} found`)];if(et[0].zoom===void 0)return[new se(at,et,"object stop key must have zoom")];if(et[0].value===void 0)return[new se(at,et,"object stop key must have value")];if(b&&b>ki(et[0].zoom))return[new se(at,et[0].zoom,"stop zoom values must appear in ascending order")];ki(et[0].zoom)!==b&&(b=ki(et[0].zoom),g=void 0,x={}),Y=Y.concat(oo({key:`${at}[0]`,value:et[0],valueSpec:{zoom:{}},validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec,objectElementValidators:{zoom:ch,value:q}}))}else Y=Y.concat(q({key:`${at}[0]`,value:et[0],valueSpec:{},validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec},et));return ni(Wa(et[1]))?Y.concat([new se(`${at}[1]`,et[1],"expressions are not allowed in function stops.")]):Y.concat(H.validateSpec({key:`${at}[1]`,value:et[1],valueSpec:o,validateSpec:H.validateSpec,style:H.style,styleSpec:H.styleSpec}))}function q(H,Y){const et=An(H.value),at=ki(H.value),gt=H.value!==null?H.value:Y;if(p){if(et!==p)return[new se(H.key,gt,`${et} stop domain type must match previous stop domain type ${p}`)]}else p=et;if(et!=="number"&&et!=="string"&&et!=="boolean")return[new se(H.key,gt,"stop domain value must be a number, string, or boolean")];if(et!=="number"&&c!=="categorical"){let Dt=`number expected, ${et} found`;return iu(o)&&c===void 0&&(Dt+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new se(H.key,gt,Dt)]}return c!=="categorical"||et!=="number"||isFinite(at)&&Math.floor(at)===at?c!=="categorical"&&et==="number"&&g!==void 0&&atnew se(`${l.key}${p.key}`,l.value,p.message));const c=o.value.expression||o.value._styleExpression.expression;if(l.expressionContext==="property"&&l.propertyKey==="text-font"&&!c.outputDefined())return[new se(l.key,l.value,`Invalid data expression for "${l.propertyKey}". Output values must be contained as literals within the expression.`)];if(l.expressionContext==="property"&&l.propertyType==="layout"&&!$u(c))return[new se(l.key,l.value,'"feature-state" data expressions are not supported with layout properties.')];if(l.expressionContext==="filter"&&!$u(c))return[new se(l.key,l.value,'"feature-state" data expressions are not supported with filters.')];if(l.expressionContext&&l.expressionContext.indexOf("cluster")===0){if(!Yu(c,["zoom","feature-state"]))return[new se(l.key,l.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(l.expressionContext==="cluster-initial"&&!Xc(c))return[new se(l.key,l.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Xa(l){const o=l.key,c=l.value,p=l.valueSpec,g=[];return Array.isArray(p.values)?p.values.indexOf(ki(c))===-1&&g.push(new se(o,c,`expected one of [${p.values.join(", ")}], ${JSON.stringify(c)} found`)):Object.keys(p.values).indexOf(ki(c))===-1&&g.push(new se(o,c,`expected one of [${Object.keys(p.values).join(", ")}], ${JSON.stringify(c)} found`)),g}function ru(l){return oh(Wa(l.value))?Ha(ns({},l,{expressionContext:"filter",valueSpec:{value:"boolean"}})):Gf(l)}function Gf(l){const o=l.value,c=l.key;if(An(o)!=="array")return[new se(c,o,`array expected, ${An(o)} found`)];const p=l.styleSpec;let g,b=[];if(o.length<1)return[new se(c,o,"filter array must have at least 1 element")];switch(b=b.concat(Xa({key:`${c}[0]`,value:o[0],valueSpec:p.filter_operator,style:l.style,styleSpec:l.styleSpec})),ki(o[0])){case"<":case"<=":case">":case">=":o.length>=2&&ki(o[1])==="$type"&&b.push(new se(c,o,`"$type" cannot be use with operator "${o[0]}"`));case"==":case"!=":o.length!==3&&b.push(new se(c,o,`filter array for operator "${o[0]}" must have 3 elements`));case"in":case"!in":o.length>=2&&(g=An(o[1]),g!=="string"&&b.push(new se(`${c}[1]`,o[1],`string expected, ${g} found`)));for(let x=2;x{k in c&&o.push(new se(p,c[k],`"${k}" is prohibited for ref layers`))}),g.layers.forEach(k=>{ki(k.id)===I&&(L=k)}),L?L.ref?o.push(new se(p,c.ref,"ref cannot reference another ref layer")):x=ki(L.type):o.push(new se(p,c.ref,`ref layer "${I}" not found`))}else if(x!=="background")if(c.source){const L=g.sources&&g.sources[c.source],k=L&&ki(L.type);L?k==="vector"&&x==="raster"?o.push(new se(p,c.source,`layer "${c.id}" requires a raster source`)):k!=="raster-dem"&&x==="hillshade"?o.push(new se(p,c.source,`layer "${c.id}" requires a raster-dem source`)):k==="raster"&&x!=="raster"?o.push(new se(p,c.source,`layer "${c.id}" requires a vector source`)):k!=="vector"||c["source-layer"]?k==="raster-dem"&&x!=="hillshade"?o.push(new se(p,c.source,"raster-dem source can only be used with layer type 'hillshade'.")):x!=="line"||!c.paint||!c.paint["line-gradient"]||k==="geojson"&&L.lineMetrics||o.push(new se(p,c,`layer "${c.id}" specifies a line-gradient, which requires a GeoJSON source with \`lineMetrics\` enabled.`)):o.push(new se(p,c,`layer "${c.id}" must specify a "source-layer"`)):o.push(new se(p,c.source,`source "${c.source}" not found`))}else o.push(new se(p,c,'missing required property "source"'));return o=o.concat(oo({key:p,value:c,valueSpec:b.layer,style:l.style,styleSpec:l.styleSpec,validateSpec:l.validateSpec,objectElementValidators:{"*":()=>[],type:()=>l.validateSpec({key:`${p}.type`,value:c.type,valueSpec:b.layer.type,style:l.style,styleSpec:l.styleSpec,validateSpec:l.validateSpec,object:c,objectKey:"type"}),filter:ru,layout:L=>oo({layer:c,key:L.key,value:L.value,style:L.style,styleSpec:L.styleSpec,validateSpec:L.validateSpec,objectElementValidators:{"*":k=>qf(ns({layerType:x},k))}}),paint:L=>oo({layer:c,key:L.key,value:L.value,style:L.style,styleSpec:L.styleSpec,validateSpec:L.validateSpec,objectElementValidators:{"*":k=>jf(ns({layerType:x},k))}})}})),o}function Il(l){const o=l.value,c=l.key,p=An(o);return p!=="string"?[new se(c,o,`string expected, ${p} found`)]:[]}const Xd={promoteId:function({key:l,value:o}){if(An(o)==="string")return Il({key:l,value:o});{const c=[];for(const p in o)c.push(...Il({key:`${l}.${p}`,value:o[p]}));return c}}};function $d(l){const o=l.value,c=l.key,p=l.styleSpec,g=l.style,b=l.validateSpec;if(!o.type)return[new se(c,o,'"type" is required')];const x=ki(o.type);let I;switch(x){case"vector":case"raster":return I=oo({key:c,value:o,valueSpec:p[`source_${x.replace("-","_")}`],style:l.style,styleSpec:p,objectElementValidators:Xd,validateSpec:b}),I;case"raster-dem":return I=function(L){var k;const N=(k=L.sourceName)!==null&&k!==void 0?k:"",z=L.value,q=L.styleSpec,H=q.source_raster_dem,Y=L.style;let et=[];const at=An(z);if(z===void 0)return et;if(at!=="object")return et.push(new se("source_raster_dem",z,`object expected, ${at} found`)),et;const gt=ki(z.encoding)==="custom",Dt=["redFactor","greenFactor","blueFactor","baseShift"],xt=L.value.encoding?`"${L.value.encoding}"`:"Default";for(const Lt in z)!gt&&Dt.includes(Lt)?et.push(new se(Lt,z[Lt],`In "${N}": "${Lt}" is only valid when "encoding" is set to "custom". ${xt} encoding found`)):H[Lt]?et=et.concat(L.validateSpec({key:Lt,value:z[Lt],valueSpec:H[Lt],validateSpec:L.validateSpec,style:Y,styleSpec:q})):et.push(new se(Lt,z[Lt],`unknown property "${Lt}"`));return et}({sourceName:c,value:o,style:l.style,styleSpec:p,validateSpec:b}),I;case"geojson":if(I=oo({key:c,value:o,valueSpec:p.source_geojson,style:g,styleSpec:p,validateSpec:b,objectElementValidators:Xd}),o.cluster)for(const L in o.clusterProperties){const[k,N]=o.clusterProperties[L],z=typeof k=="string"?[k,["accumulated"],["get",L]]:k;I.push(...Ha({key:`${c}.${L}.map`,value:N,validateSpec:b,expressionContext:"cluster-map"})),I.push(...Ha({key:`${c}.${L}.reduce`,value:z,validateSpec:b,expressionContext:"cluster-reduce"}))}return I;case"video":return oo({key:c,value:o,valueSpec:p.source_video,style:g,validateSpec:b,styleSpec:p});case"image":return oo({key:c,value:o,valueSpec:p.source_image,style:g,validateSpec:b,styleSpec:p});case"canvas":return[new se(c,null,"Please use runtime APIs to add canvas sources, rather than including them in stylesheets.","source.canvas")];default:return Xa({key:`${c}.type`,value:o.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]},style:g,validateSpec:b,styleSpec:p})}}function Yd(l){const o=l.value,c=l.styleSpec,p=c.light,g=l.style;let b=[];const x=An(o);if(o===void 0)return b;if(x!=="object")return b=b.concat([new se("light",o,`object expected, ${x} found`)]),b;for(const I in o){const L=I.match(/^(.*)-transition$/);b=b.concat(L&&p[L[1]]&&p[L[1]].transition?l.validateSpec({key:I,value:o[I],valueSpec:c.transition,validateSpec:l.validateSpec,style:g,styleSpec:c}):p[I]?l.validateSpec({key:I,value:o[I],valueSpec:p[I],validateSpec:l.validateSpec,style:g,styleSpec:c}):[new se(I,o[I],`unknown property "${I}"`)])}return b}function Kd(l){const o=l.value,c=l.styleSpec,p=c.sky,g=l.style,b=An(o);if(o===void 0)return[];if(b!=="object")return[new se("sky",o,`object expected, ${b} found`)];let x=[];for(const I in o)x=x.concat(p[I]?Zs({key:I,value:o[I],valueSpec:p[I],style:g,styleSpec:c}):[new se(I,o[I],`unknown property "${I}"`)]);return x}function ec(l){const o=l.value,c=l.styleSpec,p=c.terrain,g=l.style;let b=[];const x=An(o);if(o===void 0)return b;if(x!=="object")return b=b.concat([new se("terrain",o,`object expected, ${x} found`)]),b;for(const I in o)b=b.concat(p[I]?l.validateSpec({key:I,value:o[I],valueSpec:p[I],validateSpec:l.validateSpec,style:g,styleSpec:c}):[new se(I,o[I],`unknown property "${I}"`)]);return b}function nc(l){let o=[];const c=l.value,p=l.key;if(Array.isArray(c)){const g=[],b=[];for(const x in c)c[x].id&&g.includes(c[x].id)&&o.push(new se(p,c,`all the sprites' ids must be unique, but ${c[x].id} is duplicated`)),g.push(c[x].id),c[x].url&&b.includes(c[x].url)&&o.push(new se(p,c,`all the sprites' URLs must be unique, but ${c[x].url} is duplicated`)),b.push(c[x].url),o=o.concat(oo({key:`${p}[${x}]`,value:c[x],valueSpec:{id:{type:"string",required:!0},url:{type:"string",required:!0}},validateSpec:l.validateSpec}));return o}return Il({key:p,value:c})}const yo={"*":()=>[],array:Uf,boolean:function(l){const o=l.value,c=l.key,p=An(o);return p!=="boolean"?[new se(c,o,`boolean expected, ${p} found`)]:[]},number:ch,color:function(l){const o=l.key,c=l.value,p=An(c);return p!=="string"?[new se(o,c,`color expected, ${p} found`)]:Zn.parse(String(c))?[]:[new se(o,c,`color expected, "${c}" found`)]},constants:Wd,enum:Xa,filter:ru,function:Hd,layer:tc,object:oo,source:$d,light:Yd,sky:Kd,terrain:ec,string:Il,formatted:function(l){return Il(l).length===0?[]:Ha(l)},resolvedImage:function(l){return Il(l).length===0?[]:Ha(l)},padding:function(l){const o=l.key,c=l.value;if(An(c)==="array"){if(c.length<1||c.length>4)return[new se(o,c,`padding requires 1 to 4 values; ${c.length} values found`)];const p={type:"number"};let g=[];for(let b=0;b[]}})),l.constants&&(c=c.concat(Wd({key:"constants",value:l.constants,style:l,styleSpec:o,validateSpec:Zs}))),ou(c)}function Ws(l){return function(o){return l({...o,validateSpec:Zs})}}function ou(l){return[].concat(l).sort((o,c)=>o.line-c.line)}function ws(l){return function(...o){return ou(l.apply(this,o))}}xs.source=ws(Ws($d)),xs.sprite=ws(Ws(nc)),xs.glyphs=ws(Ws(Zf)),xs.light=ws(Ws(Yd)),xs.sky=ws(Ws(Kd)),xs.terrain=ws(Ws(ec)),xs.layer=ws(Ws(tc)),xs.filter=ws(Ws(ru)),xs.paintProperty=ws(Ws(jf)),xs.layoutProperty=ws(Ws(qf));const El=xs,a_=El.light,Wf=El.paintProperty,l_=El.layoutProperty;function su(l,o){let c=!1;if(o&&o.length)for(const p of o)l.fire(new Ee(new Error(p.message))),c=!0;return c}class ic{constructor(o,c,p){const g=this.cells=[];if(o instanceof ArrayBuffer){this.arrayBuffer=o;const x=new Int32Array(this.arrayBuffer);o=x[0],this.d=(c=x[1])+2*(p=x[2]);for(let L=0;L=z[Y+0]&&g>=z[Y+1])?(I[H]=!0,x.push(N[H])):I[H]=!1}}}}_forEachCell(o,c,p,g,b,x,I,L){const k=this._convertToCellCoord(o),N=this._convertToCellCoord(c),z=this._convertToCellCoord(p),q=this._convertToCellCoord(g);for(let H=k;H<=z;H++)for(let Y=N;Y<=q;Y++){const et=this.d*Y+H;if((!L||L(this._convertFromCellCoord(H),this._convertFromCellCoord(Y),this._convertFromCellCoord(H+1),this._convertFromCellCoord(Y+1)))&&b.call(this,o,c,p,g,et,x,I,L))return}}_convertFromCellCoord(o){return(o-this.padding)/this.scale}_convertToCellCoord(o){return Math.max(0,Math.min(this.d-1,Math.floor(o*this.scale)+this.padding))}toArrayBuffer(){if(this.arrayBuffer)return this.arrayBuffer;const o=this.cells,c=3+this.cells.length+1+1;let p=0;for(let x=0;x=0)continue;const x=l[b];g[b]=Hs[p].shallow.indexOf(b)>=0?x:au(x,o)}l instanceof Error&&(g.message=l.message)}if(g.$name)throw new Error("$name property is reserved for worker serialization logic.");return p!=="Object"&&(g.$name=p),g}throw new Error("can't serialize object of type "+typeof l)}function lu(l){if(l==null||typeof l=="boolean"||typeof l=="number"||typeof l=="string"||l instanceof Boolean||l instanceof Number||l instanceof String||l instanceof Date||l instanceof RegExp||l instanceof Blob||l instanceof Error||fh(l)||Re(l)||ArrayBuffer.isView(l)||l instanceof ImageData)return l;if(Array.isArray(l))return l.map(lu);if(typeof l=="object"){const o=l.$name||"Object";if(!Hs[o])throw new Error(`can't deserialize unregistered class ${o}`);const{klass:c}=Hs[o];if(!c)throw new Error(`can't deserialize unregistered class ${o}`);if(c.deserialize)return c.deserialize(l);const p=Object.create(c.prototype);for(const g of Object.keys(l)){if(g==="$name")continue;const b=l[g];p[g]=Hs[o].shallow.indexOf(g)>=0?b:lu(b)}return p}throw new Error("can't deserialize object of type "+typeof l)}class Jd{constructor(){this.first=!0}update(o,c){const p=Math.floor(o);return this.first?(this.first=!1,this.lastIntegerZoom=p,this.lastIntegerZoomTime=0,this.lastZoom=o,this.lastFloorZoom=p,!0):(this.lastFloorZoom>p?(this.lastIntegerZoom=p+1,this.lastIntegerZoomTime=c):this.lastFloorZooml>=128&&l<=255,Arabic:l=>l>=1536&&l<=1791,"Arabic Supplement":l=>l>=1872&&l<=1919,"Arabic Extended-A":l=>l>=2208&&l<=2303,"Hangul Jamo":l=>l>=4352&&l<=4607,"Unified Canadian Aboriginal Syllabics":l=>l>=5120&&l<=5759,Khmer:l=>l>=6016&&l<=6143,"Unified Canadian Aboriginal Syllabics Extended":l=>l>=6320&&l<=6399,"General Punctuation":l=>l>=8192&&l<=8303,"Letterlike Symbols":l=>l>=8448&&l<=8527,"Number Forms":l=>l>=8528&&l<=8591,"Miscellaneous Technical":l=>l>=8960&&l<=9215,"Control Pictures":l=>l>=9216&&l<=9279,"Optical Character Recognition":l=>l>=9280&&l<=9311,"Enclosed Alphanumerics":l=>l>=9312&&l<=9471,"Geometric Shapes":l=>l>=9632&&l<=9727,"Miscellaneous Symbols":l=>l>=9728&&l<=9983,"Miscellaneous Symbols and Arrows":l=>l>=11008&&l<=11263,"CJK Radicals Supplement":l=>l>=11904&&l<=12031,"Kangxi Radicals":l=>l>=12032&&l<=12255,"Ideographic Description Characters":l=>l>=12272&&l<=12287,"CJK Symbols and Punctuation":l=>l>=12288&&l<=12351,Hiragana:l=>l>=12352&&l<=12447,Katakana:l=>l>=12448&&l<=12543,Bopomofo:l=>l>=12544&&l<=12591,"Hangul Compatibility Jamo":l=>l>=12592&&l<=12687,Kanbun:l=>l>=12688&&l<=12703,"Bopomofo Extended":l=>l>=12704&&l<=12735,"CJK Strokes":l=>l>=12736&&l<=12783,"Katakana Phonetic Extensions":l=>l>=12784&&l<=12799,"Enclosed CJK Letters and Months":l=>l>=12800&&l<=13055,"CJK Compatibility":l=>l>=13056&&l<=13311,"CJK Unified Ideographs Extension A":l=>l>=13312&&l<=19903,"Yijing Hexagram Symbols":l=>l>=19904&&l<=19967,"CJK Unified Ideographs":l=>l>=19968&&l<=40959,"Yi Syllables":l=>l>=40960&&l<=42127,"Yi Radicals":l=>l>=42128&&l<=42191,"Hangul Jamo Extended-A":l=>l>=43360&&l<=43391,"Hangul Syllables":l=>l>=44032&&l<=55215,"Hangul Jamo Extended-B":l=>l>=55216&&l<=55295,"Private Use Area":l=>l>=57344&&l<=63743,"CJK Compatibility Ideographs":l=>l>=63744&&l<=64255,"Arabic Presentation Forms-A":l=>l>=64336&&l<=65023,"Vertical Forms":l=>l>=65040&&l<=65055,"CJK Compatibility Forms":l=>l>=65072&&l<=65103,"Small Form Variants":l=>l>=65104&&l<=65135,"Arabic Presentation Forms-B":l=>l>=65136&&l<=65279,"Halfwidth and Fullwidth Forms":l=>l>=65280&&l<=65519};function uu(l){for(const o of l)if(ph(o.charCodeAt(0)))return!0;return!1}function Qd(l){for(const o of l)if(!tm(o.charCodeAt(0)))return!1;return!0}function tm(l){return!(ve.Arabic(l)||ve["Arabic Supplement"](l)||ve["Arabic Extended-A"](l)||ve["Arabic Presentation Forms-A"](l)||ve["Arabic Presentation Forms-B"](l))}function ph(l){return!(l!==746&&l!==747&&(l<4352||!(ve["Bopomofo Extended"](l)||ve.Bopomofo(l)||ve["CJK Compatibility Forms"](l)&&!(l>=65097&&l<=65103)||ve["CJK Compatibility Ideographs"](l)||ve["CJK Compatibility"](l)||ve["CJK Radicals Supplement"](l)||ve["CJK Strokes"](l)||!(!ve["CJK Symbols and Punctuation"](l)||l>=12296&&l<=12305||l>=12308&&l<=12319||l===12336)||ve["CJK Unified Ideographs Extension A"](l)||ve["CJK Unified Ideographs"](l)||ve["Enclosed CJK Letters and Months"](l)||ve["Hangul Compatibility Jamo"](l)||ve["Hangul Jamo Extended-A"](l)||ve["Hangul Jamo Extended-B"](l)||ve["Hangul Jamo"](l)||ve["Hangul Syllables"](l)||ve.Hiragana(l)||ve["Ideographic Description Characters"](l)||ve.Kanbun(l)||ve["Kangxi Radicals"](l)||ve["Katakana Phonetic Extensions"](l)||ve.Katakana(l)&&l!==12540||!(!ve["Halfwidth and Fullwidth Forms"](l)||l===65288||l===65289||l===65293||l>=65306&&l<=65310||l===65339||l===65341||l===65343||l>=65371&&l<=65503||l===65507||l>=65512&&l<=65519)||!(!ve["Small Form Variants"](l)||l>=65112&&l<=65118||l>=65123&&l<=65126)||ve["Unified Canadian Aboriginal Syllabics"](l)||ve["Unified Canadian Aboriginal Syllabics Extended"](l)||ve["Vertical Forms"](l)||ve["Yijing Hexagram Symbols"](l)||ve["Yi Syllables"](l)||ve["Yi Radicals"](l))))}function Hf(l){return!(ph(l)||function(o){return!!(ve["Latin-1 Supplement"](o)&&(o===167||o===169||o===174||o===177||o===188||o===189||o===190||o===215||o===247)||ve["General Punctuation"](o)&&(o===8214||o===8224||o===8225||o===8240||o===8241||o===8251||o===8252||o===8258||o===8263||o===8264||o===8265||o===8273)||ve["Letterlike Symbols"](o)||ve["Number Forms"](o)||ve["Miscellaneous Technical"](o)&&(o>=8960&&o<=8967||o>=8972&&o<=8991||o>=8996&&o<=9e3||o===9003||o>=9085&&o<=9114||o>=9150&&o<=9165||o===9167||o>=9169&&o<=9179||o>=9186&&o<=9215)||ve["Control Pictures"](o)&&o!==9251||ve["Optical Character Recognition"](o)||ve["Enclosed Alphanumerics"](o)||ve["Geometric Shapes"](o)||ve["Miscellaneous Symbols"](o)&&!(o>=9754&&o<=9759)||ve["Miscellaneous Symbols and Arrows"](o)&&(o>=11026&&o<=11055||o>=11088&&o<=11097||o>=11192&&o<=11243)||ve["CJK Symbols and Punctuation"](o)||ve.Katakana(o)||ve["Private Use Area"](o)||ve["CJK Compatibility Forms"](o)||ve["Small Form Variants"](o)||ve["Halfwidth and Fullwidth Forms"](o)||o===8734||o===8756||o===8757||o>=9984&&o<=10087||o>=10102&&o<=10131||o===65532||o===65533)}(l))}function dh(l){return l>=1424&&l<=2303||ve["Arabic Presentation Forms-A"](l)||ve["Arabic Presentation Forms-B"](l)}function em(l,o){return!(!o&&dh(l)||l>=2304&&l<=3583||l>=3840&&l<=4255||ve.Khmer(l))}function u_(l){for(const o of l)if(dh(o.charCodeAt(0)))return!0;return!1}const $a=new class{constructor(){this.applyArabicShaping=null,this.processBidirectionalText=null,this.processStyledBidirectionalText=null,this.pluginStatus="unavailable",this.pluginURL=null}setState(l){this.pluginStatus=l.pluginStatus,this.pluginURL=l.pluginURL}getState(){return{pluginStatus:this.pluginStatus,pluginURL:this.pluginURL}}setMethods(l){this.applyArabicShaping=l.applyArabicShaping,this.processBidirectionalText=l.processBidirectionalText,this.processStyledBidirectionalText=l.processStyledBidirectionalText}isParsed(){return this.applyArabicShaping!=null&&this.processBidirectionalText!=null&&this.processStyledBidirectionalText!=null}getPluginURL(){return this.pluginURL}getRTLTextPluginStatus(){return this.pluginStatus}};class mi{constructor(o,c){this.zoom=o,c?(this.now=c.now,this.fadeDuration=c.fadeDuration,this.zoomHistory=c.zoomHistory,this.transition=c.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new Jd,this.transition={})}isSupportedScript(o){return function(c,p){for(const g of c)if(!em(g.charCodeAt(0),p))return!1;return!0}(o,$a.getRTLTextPluginStatus()==="loaded")}crossFadingFactor(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)}getCrossfadeParameters(){const o=this.zoom,c=o-Math.floor(o),p=this.crossFadingFactor();return o>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:c+(1-c)*p}:{fromScale:.5,toScale:1,t:1-(1-p)*c}}}class rc{constructor(o,c){this.property=o,this.value=c,this.expression=function(p,g){if(eh(p))return new ih(p,g);if(ni(p)){const b=Ud(p,g);if(b.result==="error")throw new Error(b.value.map(x=>`${x.key}: ${x.message}`).join(", "));return b.value}{let b=p;return g.type==="color"&&typeof p=="string"?b=Zn.parse(p):g.type!=="padding"||typeof p!="number"&&!Array.isArray(p)?g.type==="variableAnchorOffsetCollection"&&Array.isArray(p)&&(b=rs.parse(p)):b=_o.parse(p),{kind:"constant",evaluate:()=>b}}}(c===void 0?o.specification.default:c,o.specification)}isDataDriven(){return this.expression.kind==="source"||this.expression.kind==="composite"}possiblyEvaluate(o,c,p){return this.property.possiblyEvaluate(this,o,c,p)}}class mh{constructor(o){this.property=o,this.value=new rc(o,void 0)}transitioned(o,c){return new nm(this.property,this.value,c,st({},o.transition,this.transition),o.now)}untransitioned(){return new nm(this.property,this.value,null,{},0)}}class Xf{constructor(o){this._properties=o,this._values=Object.create(o.defaultTransitionablePropertyValues)}getValue(o){return mt(this._values[o].value.value)}setValue(o,c){Object.prototype.hasOwnProperty.call(this._values,o)||(this._values[o]=new mh(this._values[o].property)),this._values[o].value=new rc(this._values[o].property,c===null?void 0:mt(c))}getTransition(o){return mt(this._values[o].transition)}setTransition(o,c){Object.prototype.hasOwnProperty.call(this._values,o)||(this._values[o]=new mh(this._values[o].property)),this._values[o].transition=mt(c)||void 0}serialize(){const o={};for(const c of Object.keys(this._values)){const p=this.getValue(c);p!==void 0&&(o[c]=p);const g=this.getTransition(c);g!==void 0&&(o[`${c}-transition`]=g)}return o}transitioned(o,c){const p=new im(this._properties);for(const g of Object.keys(this._values))p._values[g]=this._values[g].transitioned(o,c._values[g]);return p}untransitioned(){const o=new im(this._properties);for(const c of Object.keys(this._values))o._values[c]=this._values[c].untransitioned();return o}}class nm{constructor(o,c,p,g,b){this.property=o,this.value=c,this.begin=b+g.delay||0,this.end=this.begin+g.duration||0,o.specification.transition&&(g.delay||g.duration)&&(this.prior=p)}possiblyEvaluate(o,c,p){const g=o.now||0,b=this.value.possiblyEvaluate(o,c,p),x=this.prior;if(x){if(g>this.end)return this.prior=null,b;if(this.value.isDataDriven())return this.prior=null,b;if(g=1)return 1;const k=L*L,N=k*L;return 4*(L<.5?N:3*(L-k)+N-.75)}(I))}}return b}}class im{constructor(o){this._properties=o,this._values=Object.create(o.defaultTransitioningPropertyValues)}possiblyEvaluate(o,c,p){const g=new oc(this._properties);for(const b of Object.keys(this._values))g._values[b]=this._values[b].possiblyEvaluate(o,c,p);return g}hasTransition(){for(const o of Object.keys(this._values))if(this._values[o].prior)return!0;return!1}}class rm{constructor(o){this._properties=o,this._values=Object.create(o.defaultPropertyValues)}hasValue(o){return this._values[o].value!==void 0}getValue(o){return mt(this._values[o].value)}setValue(o,c){this._values[o]=new rc(this._values[o].property,c===null?void 0:mt(c))}serialize(){const o={};for(const c of Object.keys(this._values)){const p=this.getValue(c);p!==void 0&&(o[c]=p)}return o}possiblyEvaluate(o,c,p){const g=new oc(this._properties);for(const b of Object.keys(this._values))g._values[b]=this._values[b].possiblyEvaluate(o,c,p);return g}}class Ss{constructor(o,c,p){this.property=o,this.value=c,this.parameters=p}isConstant(){return this.value.kind==="constant"}constantOr(o){return this.value.kind==="constant"?this.value.value:o}evaluate(o,c,p,g){return this.property.evaluate(this.value,this.parameters,o,c,p,g)}}class oc{constructor(o){this._properties=o,this._values=Object.create(o.defaultPossiblyEvaluatedValues)}get(o){return this._values[o]}}class De{constructor(o){this.specification=o}possiblyEvaluate(o,c){if(o.isDataDriven())throw new Error("Value should not be data driven");return o.expression.evaluate(c)}interpolate(o,c,p){const g=ro[this.specification.type];return g?g(o,c,p):o}}class Ue{constructor(o,c){this.specification=o,this.overrides=c}possiblyEvaluate(o,c,p,g){return new Ss(this,o.expression.kind==="constant"||o.expression.kind==="camera"?{kind:"constant",value:o.expression.evaluate(c,null,{},p,g)}:o.expression,c)}interpolate(o,c,p){if(o.value.kind!=="constant"||c.value.kind!=="constant")return o;if(o.value.value===void 0||c.value.value===void 0)return new Ss(this,{kind:"constant",value:void 0},o.parameters);const g=ro[this.specification.type];if(g){const b=g(o.value.value,c.value.value,p);return new Ss(this,{kind:"constant",value:b},o.parameters)}return o}evaluate(o,c,p,g,b,x){return o.kind==="constant"?o.value:o.evaluate(c,p,g,b,x)}}class gh extends Ue{possiblyEvaluate(o,c,p,g){if(o.value===void 0)return new Ss(this,{kind:"constant",value:void 0},c);if(o.expression.kind==="constant"){const b=o.expression.evaluate(c,null,{},p,g),x=o.property.specification.type==="resolvedImage"&&typeof b!="string"?b.name:b,I=this._calculate(x,x,x,c);return new Ss(this,{kind:"constant",value:I},c)}if(o.expression.kind==="camera"){const b=this._calculate(o.expression.evaluate({zoom:c.zoom-1}),o.expression.evaluate({zoom:c.zoom}),o.expression.evaluate({zoom:c.zoom+1}),c);return new Ss(this,{kind:"constant",value:b},c)}return new Ss(this,o.expression,c)}evaluate(o,c,p,g,b,x){if(o.kind==="source"){const I=o.evaluate(c,p,g,b,x);return this._calculate(I,I,I,c)}return o.kind==="composite"?this._calculate(o.evaluate({zoom:Math.floor(c.zoom)-1},p,g),o.evaluate({zoom:Math.floor(c.zoom)},p,g),o.evaluate({zoom:Math.floor(c.zoom)+1},p,g),c):o.value}_calculate(o,c,p,g){return g.zoom>g.zoomHistory.lastIntegerZoom?{from:o,to:c}:{from:p,to:c}}interpolate(o){return o}}class sc{constructor(o){this.specification=o}possiblyEvaluate(o,c,p,g){if(o.value!==void 0){if(o.expression.kind==="constant"){const b=o.expression.evaluate(c,null,{},p,g);return this._calculate(b,b,b,c)}return this._calculate(o.expression.evaluate(new mi(Math.floor(c.zoom-1),c)),o.expression.evaluate(new mi(Math.floor(c.zoom),c)),o.expression.evaluate(new mi(Math.floor(c.zoom+1),c)),c)}}_calculate(o,c,p,g){return g.zoom>g.zoomHistory.lastIntegerZoom?{from:o,to:c}:{from:p,to:c}}interpolate(o){return o}}class $f{constructor(o){this.specification=o}possiblyEvaluate(o,c,p,g){return!!o.expression.evaluate(c,null,{},p,g)}interpolate(){return!1}}class vo{constructor(o){this.properties=o,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[];for(const c in o){const p=o[c];p.specification.overridable&&this.overridableProperties.push(c);const g=this.defaultPropertyValues[c]=new rc(p,void 0),b=this.defaultTransitionablePropertyValues[c]=new mh(p);this.defaultTransitioningPropertyValues[c]=b.untransitioned(),this.defaultPossiblyEvaluatedValues[c]=g.possiblyEvaluate({})}}}Ie("DataDrivenProperty",Ue),Ie("DataConstantProperty",De),Ie("CrossFadedDataDrivenProperty",gh),Ie("CrossFadedProperty",sc),Ie("ColorRampProperty",$f);const Yf="-transition";class Is extends bi{constructor(o,c){if(super(),this.id=o.id,this.type=o.type,this._featureFilter={filter:()=>!0,needGeometry:!1},o.type!=="custom"&&(this.metadata=o.metadata,this.minzoom=o.minzoom,this.maxzoom=o.maxzoom,o.type!=="background"&&(this.source=o.source,this.sourceLayer=o["source-layer"],this.filter=o.filter),c.layout&&(this._unevaluatedLayout=new rm(c.layout)),c.paint)){this._transitionablePaint=new Xf(c.paint);for(const p in o.paint)this.setPaintProperty(p,o.paint[p],{validate:!1});for(const p in o.layout)this.setLayoutProperty(p,o.layout[p],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new oc(c.paint)}}getCrossfadeParameters(){return this._crossfadeParameters}getLayoutProperty(o){return o==="visibility"?this.visibility:this._unevaluatedLayout.getValue(o)}setLayoutProperty(o,c,p={}){c!=null&&this._validate(l_,`layers.${this.id}.layout.${o}`,o,c,p)||(o!=="visibility"?this._unevaluatedLayout.setValue(o,c):this.visibility=c)}getPaintProperty(o){return o.endsWith(Yf)?this._transitionablePaint.getTransition(o.slice(0,-11)):this._transitionablePaint.getValue(o)}setPaintProperty(o,c,p={}){if(c!=null&&this._validate(Wf,`layers.${this.id}.paint.${o}`,o,c,p))return!1;if(o.endsWith(Yf))return this._transitionablePaint.setTransition(o.slice(0,-11),c||void 0),!1;{const g=this._transitionablePaint._values[o],b=g.property.specification["property-type"]==="cross-faded-data-driven",x=g.value.isDataDriven(),I=g.value;this._transitionablePaint.setValue(o,c),this._handleSpecialPaintPropertyUpdate(o);const L=this._transitionablePaint._values[o].value;return L.isDataDriven()||x||b||this._handleOverridablePaintPropertyUpdate(o,I,L)}}_handleSpecialPaintPropertyUpdate(o){}_handleOverridablePaintPropertyUpdate(o,c,p){return!1}isHidden(o){return!!(this.minzoom&&o=this.maxzoom)||this.visibility==="none"}updateTransitions(o){this._transitioningPaint=this._transitionablePaint.transitioned(o,this._transitioningPaint)}hasTransition(){return this._transitioningPaint.hasTransition()}recalculate(o,c){o.getCrossfadeParameters&&(this._crossfadeParameters=o.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(o,void 0,c)),this.paint=this._transitioningPaint.possiblyEvaluate(o,void 0,c)}serialize(){const o={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(o.layout=o.layout||{},o.layout.visibility=this.visibility),kt(o,(c,p)=>!(c===void 0||p==="layout"&&!Object.keys(c).length||p==="paint"&&!Object.keys(c).length))}_validate(o,c,p,g,b={}){return(!b||b.validate!==!1)&&su(this,o.call(El,{key:c,layerType:this.type,objectKey:p,value:g,styleSpec:Bt,style:{glyphs:!0,sprite:!0}}))}is3D(){return!1}isTileClipped(){return!1}hasOffscreenPass(){return!1}resize(){}isStateDependent(){for(const o in this.paint._values){const c=this.paint.get(o);if(c instanceof Ss&&iu(c.property.specification)&&(c.value.kind==="source"||c.value.kind==="composite")&&c.value.isStateDependent)return!0}return!1}}const om={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array};class ac{constructor(o,c){this._structArray=o,this._pos1=c*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8}}class Ai{constructor(){this.isTransferred=!1,this.capacity=-1,this.resize(0)}static serialize(o,c){return o._trim(),c&&(o.isTransferred=!0,c.push(o.arrayBuffer)),{length:o.length,arrayBuffer:o.arrayBuffer}}static deserialize(o){const c=Object.create(this.prototype);return c.arrayBuffer=o.arrayBuffer,c.length=o.length,c.capacity=o.arrayBuffer.byteLength/c.bytesPerElement,c._refreshViews(),c}_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(o){this.reserve(o),this.length=o}reserve(o){if(o>this.capacity){this.capacity=Math.max(o,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);const c=this.uint8;this._refreshViews(),c&&this.uint8.set(c)}}_refreshViews(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")}}function Zi(l,o=1){let c=0,p=0;return{members:l.map(g=>{const b=om[g.type].BYTES_PER_ELEMENT,x=c=sm(c,Math.max(o,b)),I=g.components||1;return p=Math.max(p,b),c+=b*I,{name:g.name,type:g.type,components:I,offset:x}}),size:sm(c,Math.max(p,o)),alignment:o}}function sm(l,o){return Math.ceil(l/o)*o}class lc extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,c){const p=this.length;return this.resize(p+1),this.emplace(p,o,c)}emplace(o,c,p){const g=2*o;return this.int16[g+0]=c,this.int16[g+1]=p,o}}lc.prototype.bytesPerElement=4,Ie("StructArrayLayout2i4",lc);class xa extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,c,p){const g=this.length;return this.resize(g+1),this.emplace(g,o,c,p)}emplace(o,c,p,g){const b=3*o;return this.int16[b+0]=c,this.int16[b+1]=p,this.int16[b+2]=g,o}}xa.prototype.bytesPerElement=6,Ie("StructArrayLayout3i6",xa);class Kf extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,c,p,g){const b=this.length;return this.resize(b+1),this.emplace(b,o,c,p,g)}emplace(o,c,p,g,b){const x=4*o;return this.int16[x+0]=c,this.int16[x+1]=p,this.int16[x+2]=g,this.int16[x+3]=b,o}}Kf.prototype.bytesPerElement=8,Ie("StructArrayLayout4i8",Kf);class Jf extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,c,p,g,b,x){const I=this.length;return this.resize(I+1),this.emplace(I,o,c,p,g,b,x)}emplace(o,c,p,g,b,x,I){const L=6*o;return this.int16[L+0]=c,this.int16[L+1]=p,this.int16[L+2]=g,this.int16[L+3]=b,this.int16[L+4]=x,this.int16[L+5]=I,o}}Jf.prototype.bytesPerElement=12,Ie("StructArrayLayout2i4i12",Jf);class Qf extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,c,p,g,b,x){const I=this.length;return this.resize(I+1),this.emplace(I,o,c,p,g,b,x)}emplace(o,c,p,g,b,x,I){const L=4*o,k=8*o;return this.int16[L+0]=c,this.int16[L+1]=p,this.uint8[k+4]=g,this.uint8[k+5]=b,this.uint8[k+6]=x,this.uint8[k+7]=I,o}}Qf.prototype.bytesPerElement=8,Ie("StructArrayLayout2i4ub8",Qf);class uc extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,c){const p=this.length;return this.resize(p+1),this.emplace(p,o,c)}emplace(o,c,p){const g=2*o;return this.float32[g+0]=c,this.float32[g+1]=p,o}}uc.prototype.bytesPerElement=8,Ie("StructArrayLayout2f8",uc);class _h extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,c,p,g,b,x,I,L,k,N){const z=this.length;return this.resize(z+1),this.emplace(z,o,c,p,g,b,x,I,L,k,N)}emplace(o,c,p,g,b,x,I,L,k,N,z){const q=10*o;return this.uint16[q+0]=c,this.uint16[q+1]=p,this.uint16[q+2]=g,this.uint16[q+3]=b,this.uint16[q+4]=x,this.uint16[q+5]=I,this.uint16[q+6]=L,this.uint16[q+7]=k,this.uint16[q+8]=N,this.uint16[q+9]=z,o}}_h.prototype.bytesPerElement=20,Ie("StructArrayLayout10ui20",_h);class tp extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,c,p,g,b,x,I,L,k,N,z,q){const H=this.length;return this.resize(H+1),this.emplace(H,o,c,p,g,b,x,I,L,k,N,z,q)}emplace(o,c,p,g,b,x,I,L,k,N,z,q,H){const Y=12*o;return this.int16[Y+0]=c,this.int16[Y+1]=p,this.int16[Y+2]=g,this.int16[Y+3]=b,this.uint16[Y+4]=x,this.uint16[Y+5]=I,this.uint16[Y+6]=L,this.uint16[Y+7]=k,this.int16[Y+8]=N,this.int16[Y+9]=z,this.int16[Y+10]=q,this.int16[Y+11]=H,o}}tp.prototype.bytesPerElement=24,Ie("StructArrayLayout4i4ui4i24",tp);class ep extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,c,p){const g=this.length;return this.resize(g+1),this.emplace(g,o,c,p)}emplace(o,c,p,g){const b=3*o;return this.float32[b+0]=c,this.float32[b+1]=p,this.float32[b+2]=g,o}}ep.prototype.bytesPerElement=12,Ie("StructArrayLayout3f12",ep);class wa extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)}emplaceBack(o){const c=this.length;return this.resize(c+1),this.emplace(c,o)}emplace(o,c){return this.uint32[1*o+0]=c,o}}wa.prototype.bytesPerElement=4,Ie("StructArrayLayout1ul4",wa);class yh extends Ai{_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(o,c,p,g,b,x,I,L,k){const N=this.length;return this.resize(N+1),this.emplace(N,o,c,p,g,b,x,I,L,k)}emplace(o,c,p,g,b,x,I,L,k,N){const z=10*o,q=5*o;return this.int16[z+0]=c,this.int16[z+1]=p,this.int16[z+2]=g,this.int16[z+3]=b,this.int16[z+4]=x,this.int16[z+5]=I,this.uint32[q+3]=L,this.uint16[z+8]=k,this.uint16[z+9]=N,o}}yh.prototype.bytesPerElement=20,Ie("StructArrayLayout6i1ul2ui20",yh);class cc extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,c,p,g,b,x){const I=this.length;return this.resize(I+1),this.emplace(I,o,c,p,g,b,x)}emplace(o,c,p,g,b,x,I){const L=6*o;return this.int16[L+0]=c,this.int16[L+1]=p,this.int16[L+2]=g,this.int16[L+3]=b,this.int16[L+4]=x,this.int16[L+5]=I,o}}cc.prototype.bytesPerElement=12,Ie("StructArrayLayout2i2i2i12",cc);class vh extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)}emplaceBack(o,c,p,g,b){const x=this.length;return this.resize(x+1),this.emplace(x,o,c,p,g,b)}emplace(o,c,p,g,b,x){const I=4*o,L=8*o;return this.float32[I+0]=c,this.float32[I+1]=p,this.float32[I+2]=g,this.int16[L+6]=b,this.int16[L+7]=x,o}}vh.prototype.bytesPerElement=16,Ie("StructArrayLayout2f1f2i16",vh);class hc extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,c,p,g){const b=this.length;return this.resize(b+1),this.emplace(b,o,c,p,g)}emplace(o,c,p,g,b){const x=12*o,I=3*o;return this.uint8[x+0]=c,this.uint8[x+1]=p,this.float32[I+1]=g,this.float32[I+2]=b,o}}hc.prototype.bytesPerElement=12,Ie("StructArrayLayout2ub2f12",hc);class bh extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,c,p){const g=this.length;return this.resize(g+1),this.emplace(g,o,c,p)}emplace(o,c,p,g){const b=3*o;return this.uint16[b+0]=c,this.uint16[b+1]=p,this.uint16[b+2]=g,o}}bh.prototype.bytesPerElement=6,Ie("StructArrayLayout3ui6",bh);class cu extends Ai{_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(o,c,p,g,b,x,I,L,k,N,z,q,H,Y,et,at,gt){const Dt=this.length;return this.resize(Dt+1),this.emplace(Dt,o,c,p,g,b,x,I,L,k,N,z,q,H,Y,et,at,gt)}emplace(o,c,p,g,b,x,I,L,k,N,z,q,H,Y,et,at,gt,Dt){const xt=24*o,Lt=12*o,Kt=48*o;return this.int16[xt+0]=c,this.int16[xt+1]=p,this.uint16[xt+2]=g,this.uint16[xt+3]=b,this.uint32[Lt+2]=x,this.uint32[Lt+3]=I,this.uint32[Lt+4]=L,this.uint16[xt+10]=k,this.uint16[xt+11]=N,this.uint16[xt+12]=z,this.float32[Lt+7]=q,this.float32[Lt+8]=H,this.uint8[Kt+36]=Y,this.uint8[Kt+37]=et,this.uint8[Kt+38]=at,this.uint32[Lt+10]=gt,this.int16[xt+22]=Dt,o}}cu.prototype.bytesPerElement=48,Ie("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",cu);class Cl extends Ai{_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(o,c,p,g,b,x,I,L,k,N,z,q,H,Y,et,at,gt,Dt,xt,Lt,Kt,Qt,xe,Me,be,ye,he,Ce){const ge=this.length;return this.resize(ge+1),this.emplace(ge,o,c,p,g,b,x,I,L,k,N,z,q,H,Y,et,at,gt,Dt,xt,Lt,Kt,Qt,xe,Me,be,ye,he,Ce)}emplace(o,c,p,g,b,x,I,L,k,N,z,q,H,Y,et,at,gt,Dt,xt,Lt,Kt,Qt,xe,Me,be,ye,he,Ce,ge){const oe=32*o,Ve=16*o;return this.int16[oe+0]=c,this.int16[oe+1]=p,this.int16[oe+2]=g,this.int16[oe+3]=b,this.int16[oe+4]=x,this.int16[oe+5]=I,this.int16[oe+6]=L,this.int16[oe+7]=k,this.uint16[oe+8]=N,this.uint16[oe+9]=z,this.uint16[oe+10]=q,this.uint16[oe+11]=H,this.uint16[oe+12]=Y,this.uint16[oe+13]=et,this.uint16[oe+14]=at,this.uint16[oe+15]=gt,this.uint16[oe+16]=Dt,this.uint16[oe+17]=xt,this.uint16[oe+18]=Lt,this.uint16[oe+19]=Kt,this.uint16[oe+20]=Qt,this.uint16[oe+21]=xe,this.uint16[oe+22]=Me,this.uint32[Ve+12]=be,this.float32[Ve+13]=ye,this.float32[Ve+14]=he,this.uint16[oe+30]=Ce,this.uint16[oe+31]=ge,o}}Cl.prototype.bytesPerElement=64,Ie("StructArrayLayout8i15ui1ul2f2ui64",Cl);class xh extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o){const c=this.length;return this.resize(c+1),this.emplace(c,o)}emplace(o,c){return this.float32[1*o+0]=c,o}}xh.prototype.bytesPerElement=4,Ie("StructArrayLayout1f4",xh);class wh extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,c,p){const g=this.length;return this.resize(g+1),this.emplace(g,o,c,p)}emplace(o,c,p,g){const b=3*o;return this.uint16[6*o+0]=c,this.float32[b+1]=p,this.float32[b+2]=g,o}}wh.prototype.bytesPerElement=12,Ie("StructArrayLayout1ui2f12",wh);class Tl extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,c,p){const g=this.length;return this.resize(g+1),this.emplace(g,o,c,p)}emplace(o,c,p,g){const b=4*o;return this.uint32[2*o+0]=c,this.uint16[b+2]=p,this.uint16[b+3]=g,o}}Tl.prototype.bytesPerElement=8,Ie("StructArrayLayout1ul2ui8",Tl);class np extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o,c){const p=this.length;return this.resize(p+1),this.emplace(p,o,c)}emplace(o,c,p){const g=2*o;return this.uint16[g+0]=c,this.uint16[g+1]=p,o}}np.prototype.bytesPerElement=4,Ie("StructArrayLayout2ui4",np);class ip extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)}emplaceBack(o){const c=this.length;return this.resize(c+1),this.emplace(c,o)}emplace(o,c){return this.uint16[1*o+0]=c,o}}ip.prototype.bytesPerElement=2,Ie("StructArrayLayout1ui2",ip);class Sh extends Ai{_refreshViews(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)}emplaceBack(o,c,p,g){const b=this.length;return this.resize(b+1),this.emplace(b,o,c,p,g)}emplace(o,c,p,g,b){const x=4*o;return this.float32[x+0]=c,this.float32[x+1]=p,this.float32[x+2]=g,this.float32[x+3]=b,o}}Sh.prototype.bytesPerElement=16,Ie("StructArrayLayout4f16",Sh);class am extends ac{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 E(this.anchorPointX,this.anchorPointY)}}am.prototype.size=20;class y extends yh{get(o){return new am(this,o)}}Ie("CollisionBoxArray",y);class s extends ac{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(o){this._structArray.uint8[this._pos1+37]=o}get hidden(){return this._structArray.uint8[this._pos1+38]}set hidden(o){this._structArray.uint8[this._pos1+38]=o}get crossTileID(){return this._structArray.uint32[this._pos4+10]}set crossTileID(o){this._structArray.uint32[this._pos4+10]=o}get associatedIconIndex(){return this._structArray.int16[this._pos2+22]}}s.prototype.size=48;class f extends cu{get(o){return new s(this,o)}}Ie("PlacedSymbolArray",f);class d extends ac{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(o){this._structArray.uint32[this._pos4+12]=o}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]}}d.prototype.size=64;class m extends Cl{get(o){return new d(this,o)}}Ie("SymbolInstanceArray",m);class v extends xh{getoffsetX(o){return this.float32[1*o+0]}}Ie("GlyphOffsetArray",v);class C extends xa{getx(o){return this.int16[3*o+0]}gety(o){return this.int16[3*o+1]}gettileUnitDistanceFromAnchor(o){return this.int16[3*o+2]}}Ie("SymbolLineVertexArray",C);class T extends ac{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]}}T.prototype.size=12;class P extends wh{get(o){return new T(this,o)}}Ie("TextAnchorOffsetArray",P);class R extends ac{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]}}R.prototype.size=8;class B extends Tl{get(o){return new R(this,o)}}Ie("FeatureIndexArray",B);class U extends lc{}class X extends lc{}class rt extends lc{}class it extends Jf{}class ct extends Qf{}class tt extends uc{}class wt extends _h{}class zt extends tp{}class ht extends ep{}class Mt extends wa{}class Ft extends cc{}class Ut extends hc{}class $t extends bh{}class ne extends np{}const ee=Zi([{name:"a_pos",components:2,type:"Int16"}],4),{members:le}=ee;class pe{constructor(o=[]){this.segments=o}prepareSegment(o,c,p,g){let b=this.segments[this.segments.length-1];return o>pe.MAX_VERTEX_ARRAY_LENGTH&&te(`Max vertices per segment is ${pe.MAX_VERTEX_ARRAY_LENGTH}: bucket requested ${o}`),(!b||b.vertexLength+o>pe.MAX_VERTEX_ARRAY_LENGTH||b.sortKey!==g)&&(b={vertexOffset:c.length,primitiveOffset:p.length,vertexLength:0,primitiveLength:0},g!==void 0&&(b.sortKey=g),this.segments.push(b)),b}get(){return this.segments}destroy(){for(const o of this.segments)for(const c in o.vaos)o.vaos[c].destroy()}static simpleSegment(o,c,p,g){return new pe([{vertexOffset:o,primitiveOffset:c,vertexLength:p,primitiveLength:g,vaos:{},sortKey:0}])}}function cn(l,o){return 256*(l=Q(Math.floor(l),0,255))+Q(Math.floor(o),0,255)}pe.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,Ie("SegmentVector",pe);const me=Zi([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]);var je={exports:{}},hn={exports:{}};hn.exports=function(l,o){var c,p,g,b,x,I,L,k;for(p=l.length-(c=3&l.length),g=o,x=3432918353,I=461845907,k=0;k>>16)*x&65535)<<16)&4294967295)<<15|L>>>17))*I+(((L>>>16)*I&65535)<<16)&4294967295)<<13|g>>>19))+((5*(g>>>16)&65535)<<16)&4294967295))+((58964+(b>>>16)&65535)<<16);switch(L=0,c){case 3:L^=(255&l.charCodeAt(k+2))<<16;case 2:L^=(255&l.charCodeAt(k+1))<<8;case 1:g^=L=(65535&(L=(L=(65535&(L^=255&l.charCodeAt(k)))*x+(((L>>>16)*x&65535)<<16)&4294967295)<<15|L>>>17))*I+(((L>>>16)*I&65535)<<16)&4294967295}return g^=l.length,g=2246822507*(65535&(g^=g>>>16))+((2246822507*(g>>>16)&65535)<<16)&4294967295,g=3266489909*(65535&(g^=g>>>13))+((3266489909*(g>>>16)&65535)<<16)&4294967295,(g^=g>>>16)>>>0};var Ln=hn.exports,Qe={exports:{}};Qe.exports=function(l,o){for(var c,p=l.length,g=o^p,b=0;p>=4;)c=1540483477*(65535&(c=255&l.charCodeAt(b)|(255&l.charCodeAt(++b))<<8|(255&l.charCodeAt(++b))<<16|(255&l.charCodeAt(++b))<<24))+((1540483477*(c>>>16)&65535)<<16),g=1540483477*(65535&g)+((1540483477*(g>>>16)&65535)<<16)^(c=1540483477*(65535&(c^=c>>>24))+((1540483477*(c>>>16)&65535)<<16)),p-=4,++b;switch(p){case 3:g^=(255&l.charCodeAt(b+2))<<16;case 2:g^=(255&l.charCodeAt(b+1))<<8;case 1:g=1540483477*(65535&(g^=255&l.charCodeAt(b)))+((1540483477*(g>>>16)&65535)<<16)}return g=1540483477*(65535&(g^=g>>>13))+((1540483477*(g>>>16)&65535)<<16),(g^=g>>>15)>>>0};var dn=Ln,yn=Qe.exports;je.exports=dn,je.exports.murmur3=dn,je.exports.murmur2=yn;var Di=_(je.exports);class Hn{constructor(){this.ids=[],this.positions=[],this.indexed=!1}add(o,c,p,g){this.ids.push(zo(o)),this.positions.push(c,p,g)}getPositions(o){if(!this.indexed)throw new Error("Trying to get index, but feature positions are not indexed");const c=zo(o);let p=0,g=this.ids.length-1;for(;p>1;this.ids[x]>=c?g=x:p=x+1}const b=[];for(;this.ids[p]===c;)b.push({index:this.positions[3*p],start:this.positions[3*p+1],end:this.positions[3*p+2]}),p++;return b}static serialize(o,c){const p=new Float64Array(o.ids),g=new Uint32Array(o.positions);return fr(p,g,0,p.length-1),c&&c.push(p.buffer,g.buffer),{ids:p,positions:g}}static deserialize(o){const c=new Hn;return c.ids=o.ids,c.positions=o.positions,c.indexed=!0,c}}function zo(l){const o=+l;return!isNaN(o)&&o<=Number.MAX_SAFE_INTEGER?o:Di(String(l))}function fr(l,o,c,p){for(;c>1];let b=c-1,x=p+1;for(;;){do b++;while(l[b]g);if(b>=x)break;wi(l,b,x),wi(o,3*b,3*x),wi(o,3*b+1,3*x+1),wi(o,3*b+2,3*x+2)}x-c`u_${g}`),this.type=p}setUniform(o,c,p){o.set(p.constantOr(this.value))}getBinding(o,c,p){return this.type==="color"?new Ya(o,c):new Fo(o,c)}}class nr{constructor(o,c){this.uniformNames=c.map(p=>`u_${p}`),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1}setConstantPatternPositions(o,c){this.pixelRatioFrom=c.pixelRatio,this.pixelRatioTo=o.pixelRatio,this.patternFrom=c.tlbr,this.patternTo=o.tlbr}setUniform(o,c,p,g){const b=g==="u_pattern_to"?this.patternTo:g==="u_pattern_from"?this.patternFrom:g==="u_pixel_ratio_to"?this.pixelRatioTo:g==="u_pixel_ratio_from"?this.pixelRatioFrom:null;b&&o.set(b)}getBinding(o,c,p){return p.substr(0,9)==="u_pattern"?new Xs(o,c):new Fo(o,c)}}class Si{constructor(o,c,p,g){this.expression=o,this.type=p,this.maxValue=0,this.paintVertexAttributes=c.map(b=>({name:`a_${b}`,type:"Float32",components:p==="color"?2:1,offset:0})),this.paintVertexArray=new g}populatePaintArray(o,c,p,g,b){const x=this.paintVertexArray.length,I=this.expression.evaluate(new mi(0),c,{},g,[],b);this.paintVertexArray.resize(o),this._setPaintValue(x,o,I)}updatePaintArray(o,c,p,g){const b=this.expression.evaluate({zoom:0},p,g);this._setPaintValue(o,c,b)}_setPaintValue(o,c,p){if(this.type==="color"){const g=Ka(p);for(let b=o;b`u_${I}_t`),this.type=p,this.useIntegerZoom=g,this.zoom=b,this.maxValue=0,this.paintVertexAttributes=c.map(I=>({name:`a_${I}`,type:"Float32",components:p==="color"?4:2,offset:0})),this.paintVertexArray=new x}populatePaintArray(o,c,p,g,b){const x=this.expression.evaluate(new mi(this.zoom),c,{},g,[],b),I=this.expression.evaluate(new mi(this.zoom+1),c,{},g,[],b),L=this.paintVertexArray.length;this.paintVertexArray.resize(o),this._setPaintValue(L,o,x,I)}updatePaintArray(o,c,p,g){const b=this.expression.evaluate({zoom:this.zoom},p,g),x=this.expression.evaluate({zoom:this.zoom+1},p,g);this._setPaintValue(o,c,b,x)}_setPaintValue(o,c,p,g){if(this.type==="color"){const b=Ka(p),x=Ka(g);for(let I=o;I`#define HAS_UNIFORM_${g}`))}return o}getBinderAttributes(){const o=[];for(const c in this.binders){const p=this.binders[c];if(p instanceof Si||p instanceof gi)for(let g=0;g!0){this.programConfigurations={};for(const g of o)this.programConfigurations[g.id]=new ir(g,c,p);this.needsUpload=!1,this._featureMap=new Hn,this._bufferOffset=0}populatePaintArrays(o,c,p,g,b,x){for(const I in this.programConfigurations)this.programConfigurations[I].populatePaintArrays(o,c,g,b,x);c.id!==void 0&&this._featureMap.add(c.id,p,this._bufferOffset,o),this._bufferOffset=o,this.needsUpload=!0}updatePaintArrays(o,c,p,g){for(const b of p)this.needsUpload=this.programConfigurations[b.id].updatePaintArrays(o,this._featureMap,c,b,g)||this.needsUpload}get(o){return this.programConfigurations[o]}upload(o){if(this.needsUpload){for(const c in this.programConfigurations)this.programConfigurations[c].upload(o);this.needsUpload=!1}}destroy(){for(const o in this.programConfigurations)this.programConfigurations[o].destroy()}}function as(l,o){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[l]||[l.replace(`${o}-`,"").replace(/-/g,"_")]}function rr(l,o,c){const p={color:{source:uc,composite:Sh},number:{source:xh,composite:uc}},g=function(b){return{"line-pattern":{source:wt,composite:wt},"fill-pattern":{source:wt,composite:wt},"fill-extrusion-pattern":{source:wt,composite:wt}}[b]}(l);return g&&g[c]||p[o][c]}Ie("ConstantBinder",$s),Ie("CrossFadedConstantBinder",nr),Ie("SourceExpressionBinder",Si),Ie("CrossFadedCompositeBinder",ss),Ie("CompositeExpressionBinder",gi),Ie("ProgramConfiguration",ir,{omit:["_buffers"]}),Ie("ProgramConfigurationSet",Ii);const Bi=8192,rp=Math.pow(2,14)-1,lm=-rp-1;function Ll(l){const o=Bi/l.extent,c=l.loadGeometry();for(let p=0;px.x+1||Lx.y+1)&&te("Geometry exceeds allowed extent, reduce your vector tile buffer size")}}return c}function Ml(l,o){return{type:l.type,id:l.id,properties:l.properties,geometry:o?Ll(l):[]}}function Ih(l,o,c,p,g){l.emplaceBack(2*o+(p+1)/2,2*c+(g+1)/2)}class Ja{constructor(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(c=>c.id),this.index=o.index,this.hasPattern=!1,this.layoutVertexArray=new X,this.indexArray=new $t,this.segments=new pe,this.programConfigurations=new Ii(o.layers,o.zoom),this.stateDependentLayerIds=this.layers.filter(c=>c.isStateDependent()).map(c=>c.id)}populate(o,c,p){const g=this.layers[0],b=[];let x=null,I=!1;g.type==="circle"&&(x=g.layout.get("circle-sort-key"),I=!x.isConstant());for(const{feature:L,id:k,index:N,sourceLayerIndex:z}of o){const q=this.layers[0]._featureFilter.needGeometry,H=Ml(L,q);if(!this.layers[0]._featureFilter.filter(new mi(this.zoom),H,p))continue;const Y=I?x.evaluate(H,{},p):void 0,et={id:k,properties:L.properties,type:L.type,sourceLayerIndex:z,index:N,geometry:q?H.geometry:Ll(L),patterns:{},sortKey:Y};b.push(et)}I&&b.sort((L,k)=>L.sortKey-k.sortKey);for(const L of b){const{geometry:k,index:N,sourceLayerIndex:z}=L,q=o[N].feature;this.addFeature(L,k,N,p),c.featureIndex.insert(q,k,N,z,this.index)}}update(o,c,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,c,this.stateDependentLayers,p)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,le),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}addFeature(o,c,p,g){for(const b of c)for(const x of b){const I=x.x,L=x.y;if(I<0||I>=Bi||L<0||L>=Bi)continue;const k=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,o.sortKey),N=k.vertexLength;Ih(this.layoutVertexArray,I,L,-1,-1),Ih(this.layoutVertexArray,I,L,1,-1),Ih(this.layoutVertexArray,I,L,1,1),Ih(this.layoutVertexArray,I,L,-1,1),this.indexArray.emplaceBack(N,N+1,N+2),this.indexArray.emplaceBack(N,N+3,N+2),k.vertexLength+=4,k.primitiveLength+=2}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,o,p,{},g)}}function op(l,o){for(let c=0;c1){if(Eh(l,o))return!0;for(let p=0;p1?c:c.sub(o)._mult(g)._add(o))}function b0(l,o){let c,p,g,b=!1;for(let x=0;xo.y!=g.y>o.y&&o.x<(g.x-p.x)*(o.y-p.y)/(g.y-p.y)+p.x&&(b=!b)}return b}function Ch(l,o){let c=!1;for(let p=0,g=l.length-1;po.y!=x.y>o.y&&o.x<(x.x-b.x)*(o.y-b.y)/(x.y-b.y)+b.x&&(c=!c)}return c}function $w(l,o,c){const p=c[0],g=c[2];if(l.xg.x&&o.x>g.x||l.yg.y&&o.y>g.y)return!1;const b=Pt(l,o,c[0]);return b!==Pt(l,o,c[1])||b!==Pt(l,o,c[2])||b!==Pt(l,o,c[3])}function up(l,o,c){const p=o.paint.get(l).value;return p.kind==="constant"?p.value:c.programConfigurations.get(o.id).getMaxValue(l)}function cm(l){return Math.sqrt(l[0]*l[0]+l[1]*l[1])}function hm(l,o,c,p,g){if(!o[0]&&!o[1])return l;const b=E.convert(o)._mult(g);c==="viewport"&&b._rotate(-p);const x=[];for(let I=0;II0(at,et))}(k,L),H=z?N*I:N;for(const Y of g)for(const et of Y){const at=z?et:I0(et,L);let gt=H;const Dt=fm([],[et.x,et.y,0,1],L);if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?gt*=Dt[3]/x.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(gt*=x.cameraToCenterDistance/Dt[3]),um(q,at,gt))return!0}return!1}}function I0(l,o){const c=fm([],[l.x,l.y,0,1],o);return new E(c[0]/c[3],c[1]/c[3])}class E0 extends Ja{}let C0;Ie("HeatmapBucket",E0,{omit:["layers"]});var Qw={get paint(){return C0=C0||new vo({"heatmap-radius":new Ue(Bt.paint_heatmap["heatmap-radius"]),"heatmap-weight":new Ue(Bt.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new De(Bt.paint_heatmap["heatmap-intensity"]),"heatmap-color":new $f(Bt.paint_heatmap["heatmap-color"]),"heatmap-opacity":new De(Bt.paint_heatmap["heatmap-opacity"])})}};function f_(l,{width:o,height:c},p,g){if(g){if(g instanceof Uint8ClampedArray)g=new Uint8Array(g.buffer);else if(g.length!==o*c*p)throw new RangeError(`mismatched image size. expected: ${g.length} but got: ${o*c*p}`)}else g=new Uint8Array(o*c*p);return l.width=o,l.height=c,l.data=g,l}function T0(l,{width:o,height:c},p){if(o===l.width&&c===l.height)return;const g=f_({},{width:o,height:c},p);p_(l,g,{x:0,y:0},{x:0,y:0},{width:Math.min(l.width,o),height:Math.min(l.height,c)},p),l.width=o,l.height=c,l.data=g.data}function p_(l,o,c,p,g,b){if(g.width===0||g.height===0)return o;if(g.width>l.width||g.height>l.height||c.x>l.width-g.width||c.y>l.height-g.height)throw new RangeError("out of range source coordinates for image copy");if(g.width>o.width||g.height>o.height||p.x>o.width-g.width||p.y>o.height-g.height)throw new RangeError("out of range destination coordinates for image copy");const x=l.data,I=o.data;if(x===I)throw new Error("srcData equals dstData, so image is already copied");for(let L=0;L{o[l.evaluationKey]=L;const k=l.expression.evaluate(o);g.data[x+I+0]=Math.floor(255*k.r/k.a),g.data[x+I+1]=Math.floor(255*k.g/k.a),g.data[x+I+2]=Math.floor(255*k.b/k.a),g.data[x+I+3]=Math.floor(255*k.a)};if(l.clips)for(let x=0,I=0;x80*c){p=b=l[0],g=x=l[1];for(var Y=c;Yb&&(b=I),L>x&&(x=L);k=(k=Math.max(b-p,x-g))!==0?32767/k:0}return fp(q,H,c,p,g,k,0),H}function P0(l,o,c,p,g){var b,x;if(g===__(l,o,c,p)>0)for(b=o;b=o;b-=p)x=D0(b,l[b],l[b+1],x);return x&&dm(x,x.next)&&(dp(x),x=x.next),x}function pc(l,o){if(!l)return l;o||(o=l);var c,p=l;do if(c=!1,p.steiner||!dm(p,p.next)&&Wi(p.prev,p,p.next)!==0)p=p.next;else{if(dp(p),(p=o=p.prev)===p.next)break;c=!0}while(c||p!==o);return o}function fp(l,o,c,p,g,b,x){if(l){!x&&b&&function(N,z,q,H){var Y=N;do Y.z===0&&(Y.z=m_(Y.x,Y.y,z,q,H)),Y.prevZ=Y.prev,Y.nextZ=Y.next,Y=Y.next;while(Y!==N);Y.prevZ.nextZ=null,Y.prevZ=null,function(et){var at,gt,Dt,xt,Lt,Kt,Qt,xe,Me=1;do{for(gt=et,et=null,Lt=null,Kt=0;gt;){for(Kt++,Dt=gt,Qt=0,at=0;at0||xe>0&&Dt;)Qt!==0&&(xe===0||!Dt||gt.z<=Dt.z)?(xt=gt,gt=gt.nextZ,Qt--):(xt=Dt,Dt=Dt.nextZ,xe--),Lt?Lt.nextZ=xt:et=xt,xt.prevZ=Lt,Lt=xt;gt=Dt}Lt.nextZ=null,Me*=2}while(Kt>1)}(Y)}(l,p,g,b);for(var I,L,k=l;l.prev!==l.next;)if(I=l.prev,L=l.next,b?s2(l,p,g,b):o2(l))o.push(I.i/c|0),o.push(l.i/c|0),o.push(L.i/c|0),dp(l),l=L.next,k=L.next;else if((l=L)===k){x?x===1?fp(l=a2(pc(l),o,c),o,c,p,g,b,2):x===2&&l2(l,o,c,p,g,b):fp(pc(l),o,c,p,g,b,1);break}}}function o2(l){var o=l.prev,c=l,p=l.next;if(Wi(o,c,p)>=0)return!1;for(var g=o.x,b=c.x,x=p.x,I=o.y,L=c.y,k=p.y,N=gb?g>x?g:x:b>x?b:x,H=I>L?I>k?I:k:L>k?L:k,Y=p.next;Y!==o;){if(Y.x>=N&&Y.x<=q&&Y.y>=z&&Y.y<=H&&Lh(g,I,b,L,x,k,Y.x,Y.y)&&Wi(Y.prev,Y,Y.next)>=0)return!1;Y=Y.next}return!0}function s2(l,o,c,p){var g=l.prev,b=l,x=l.next;if(Wi(g,b,x)>=0)return!1;for(var I=g.x,L=b.x,k=x.x,N=g.y,z=b.y,q=x.y,H=IL?I>k?I:k:L>k?L:k,at=N>z?N>q?N:q:z>q?z:q,gt=m_(H,Y,o,c,p),Dt=m_(et,at,o,c,p),xt=l.prevZ,Lt=l.nextZ;xt&&xt.z>=gt&&Lt&&Lt.z<=Dt;){if(xt.x>=H&&xt.x<=et&&xt.y>=Y&&xt.y<=at&&xt!==g&&xt!==x&&Lh(I,N,L,z,k,q,xt.x,xt.y)&&Wi(xt.prev,xt,xt.next)>=0||(xt=xt.prevZ,Lt.x>=H&&Lt.x<=et&&Lt.y>=Y&&Lt.y<=at&&Lt!==g&&Lt!==x&&Lh(I,N,L,z,k,q,Lt.x,Lt.y)&&Wi(Lt.prev,Lt,Lt.next)>=0))return!1;Lt=Lt.nextZ}for(;xt&&xt.z>=gt;){if(xt.x>=H&&xt.x<=et&&xt.y>=Y&&xt.y<=at&&xt!==g&&xt!==x&&Lh(I,N,L,z,k,q,xt.x,xt.y)&&Wi(xt.prev,xt,xt.next)>=0)return!1;xt=xt.prevZ}for(;Lt&&Lt.z<=Dt;){if(Lt.x>=H&&Lt.x<=et&&Lt.y>=Y&&Lt.y<=at&&Lt!==g&&Lt!==x&&Lh(I,N,L,z,k,q,Lt.x,Lt.y)&&Wi(Lt.prev,Lt,Lt.next)>=0)return!1;Lt=Lt.nextZ}return!0}function a2(l,o,c){var p=l;do{var g=p.prev,b=p.next.next;!dm(g,b)&&k0(g,p,p.next,b)&&pp(g,b)&&pp(b,g)&&(o.push(g.i/c|0),o.push(p.i/c|0),o.push(b.i/c|0),dp(p),dp(p.next),p=l=b),p=p.next}while(p!==l);return pc(p)}function l2(l,o,c,p,g,b){var x=l;do{for(var I=x.next.next;I!==x.prev;){if(x.i!==I.i&&p2(x,I)){var L=A0(x,I);return x=pc(x,x.next),L=pc(L,L.next),fp(x,o,c,p,g,b,0),void fp(L,o,c,p,g,b,0)}I=I.next}x=x.next}while(x!==l)}function u2(l,o){return l.x-o.x}function c2(l,o){var c=function(g,b){var x,I=b,L=g.x,k=g.y,N=-1/0;do{if(k<=I.y&&k>=I.next.y&&I.next.y!==I.y){var z=I.x+(k-I.y)*(I.next.x-I.x)/(I.next.y-I.y);if(z<=L&&z>N&&(N=z,x=I.x=I.x&&I.x>=Y&&L!==I.x&&Lh(kx.x||I.x===x.x&&h2(x,I)))&&(x=I,at=q)),I=I.next;while(I!==H);return x}(l,o);if(!c)return o;var p=A0(c,l);return pc(p,p.next),pc(c,c.next)}function h2(l,o){return Wi(l.prev,l,o.prev)<0&&Wi(o.next,l,l.next)<0}function m_(l,o,c,p,g){return(l=1431655765&((l=858993459&((l=252645135&((l=16711935&((l=(l-c)*g|0)|l<<8))|l<<4))|l<<2))|l<<1))|(o=1431655765&((o=858993459&((o=252645135&((o=16711935&((o=(o-p)*g|0)|o<<8))|o<<4))|o<<2))|o<<1))<<1}function f2(l){var o=l,c=l;do(o.x=(l-x)*(b-I)&&(l-x)*(p-I)>=(c-x)*(o-I)&&(c-x)*(b-I)>=(g-x)*(p-I)}function p2(l,o){return l.next.i!==o.i&&l.prev.i!==o.i&&!function(c,p){var g=c;do{if(g.i!==c.i&&g.next.i!==c.i&&g.i!==p.i&&g.next.i!==p.i&&k0(g,g.next,c,p))return!0;g=g.next}while(g!==c);return!1}(l,o)&&(pp(l,o)&&pp(o,l)&&function(c,p){var g=c,b=!1,x=(c.x+p.x)/2,I=(c.y+p.y)/2;do g.y>I!=g.next.y>I&&g.next.y!==g.y&&x<(g.next.x-g.x)*(I-g.y)/(g.next.y-g.y)+g.x&&(b=!b),g=g.next;while(g!==c);return b}(l,o)&&(Wi(l.prev,l,o.prev)||Wi(l,o.prev,o))||dm(l,o)&&Wi(l.prev,l,l.next)>0&&Wi(o.prev,o,o.next)>0)}function Wi(l,o,c){return(o.y-l.y)*(c.x-o.x)-(o.x-l.x)*(c.y-o.y)}function dm(l,o){return l.x===o.x&&l.y===o.y}function k0(l,o,c,p){var g=gm(Wi(l,o,c)),b=gm(Wi(l,o,p)),x=gm(Wi(c,p,l)),I=gm(Wi(c,p,o));return g!==b&&x!==I||!(g!==0||!mm(l,c,o))||!(b!==0||!mm(l,p,o))||!(x!==0||!mm(c,l,p))||!(I!==0||!mm(c,o,p))}function mm(l,o,c){return o.x<=Math.max(l.x,c.x)&&o.x>=Math.min(l.x,c.x)&&o.y<=Math.max(l.y,c.y)&&o.y>=Math.min(l.y,c.y)}function gm(l){return l>0?1:l<0?-1:0}function pp(l,o){return Wi(l.prev,l,l.next)<0?Wi(l,o,l.next)>=0&&Wi(l,l.prev,o)>=0:Wi(l,o,l.prev)<0||Wi(l,l.next,o)<0}function A0(l,o){var c=new g_(l.i,l.x,l.y),p=new g_(o.i,o.x,o.y),g=l.next,b=o.prev;return l.next=o,o.prev=l,c.next=g,g.prev=c,p.next=c,c.prev=p,b.next=p,p.prev=b,p}function D0(l,o,c,p){var g=new g_(l,o,c);return p?(g.next=p.next,g.prev=p,p.next.prev=g,p.next=g):(g.prev=g,g.next=g),g}function dp(l){l.next.prev=l.prev,l.prev.next=l.next,l.prevZ&&(l.prevZ.nextZ=l.nextZ),l.nextZ&&(l.nextZ.prevZ=l.prevZ)}function g_(l,o,c){this.i=l,this.x=o,this.y=c,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function __(l,o,c,p){for(var g=0,b=o,x=c-p;b0&&c.holes.push(p+=l[g-1].length)}return c};var R0=_(d_.exports);function d2(l,o,c,p,g){N0(l,o,c||0,p||l.length-1,g||m2)}function N0(l,o,c,p,g){for(;p>c;){if(p-c>600){var b=p-c+1,x=o-c+1,I=Math.log(b),L=.5*Math.exp(2*I/3),k=.5*Math.sqrt(I*L*(b-L)/b)*(x-b/2<0?-1:1);N0(l,o,Math.max(c,Math.floor(o-x*L/b+k)),Math.min(p,Math.floor(o+(b-x)*L/b+k)),g)}var N=l[o],z=c,q=p;for(mp(l,c,o),g(l[p],N)>0&&mp(l,c,p);z0;)q--}g(l[c],N)===0?mp(l,c,q):mp(l,++q,p),q<=o&&(c=q+1),o<=q&&(p=q-1)}}function mp(l,o,c){var p=l[o];l[o]=l[c],l[c]=p}function m2(l,o){return lo?1:0}function y_(l,o){const c=l.length;if(c<=1)return[l];const p=[];let g,b;for(let x=0;x1)for(let x=0;xc.id),this.index=o.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new rt,this.indexArray=new $t,this.indexArray2=new ne,this.programConfigurations=new Ii(o.layers,o.zoom),this.segments=new pe,this.segments2=new pe,this.stateDependentLayerIds=this.layers.filter(c=>c.isStateDependent()).map(c=>c.id)}populate(o,c,p){this.hasPattern=v_("fill",this.layers,c);const g=this.layers[0].layout.get("fill-sort-key"),b=!g.isConstant(),x=[];for(const{feature:I,id:L,index:k,sourceLayerIndex:N}of o){const z=this.layers[0]._featureFilter.needGeometry,q=Ml(I,z);if(!this.layers[0]._featureFilter.filter(new mi(this.zoom),q,p))continue;const H=b?g.evaluate(q,{},p,c.availableImages):void 0,Y={id:L,properties:I.properties,type:I.type,sourceLayerIndex:N,index:k,geometry:z?q.geometry:Ll(I),patterns:{},sortKey:H};x.push(Y)}b&&x.sort((I,L)=>I.sortKey-L.sortKey);for(const I of x){const{geometry:L,index:k,sourceLayerIndex:N}=I;if(this.hasPattern){const z=b_("fill",this.layers,I,this.zoom,c);this.patternFeatures.push(z)}else this.addFeature(I,L,k,p,{});c.featureIndex.insert(o[k].feature,L,k,N,this.index)}}update(o,c,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,c,this.stateDependentLayers,p)}addFeatures(o,c,p){for(const g of this.patternFeatures)this.addFeature(g,g.geometry,g.index,c,p)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,r2),this.indexBuffer=o.createIndexBuffer(this.indexArray),this.indexBuffer2=o.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(o),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(o,c,p,g,b){for(const x of y_(c,500)){let I=0;for(const H of x)I+=H.length;const L=this.segments.prepareSegment(I,this.layoutVertexArray,this.indexArray),k=L.vertexLength,N=[],z=[];for(const H of x){if(H.length===0)continue;H!==x[0]&&z.push(N.length/2);const Y=this.segments2.prepareSegment(H.length,this.layoutVertexArray,this.indexArray2),et=Y.vertexLength;this.layoutVertexArray.emplaceBack(H[0].x,H[0].y),this.indexArray2.emplaceBack(et+H.length-1,et),N.push(H[0].x),N.push(H[0].y);for(let at=1;at>3}if(g--,p===1||p===2)b+=l.readSVarint(),x+=l.readSVarint(),p===1&&(o&&I.push(o),o=[]),o.push(new w2(b,x));else{if(p!==7)throw new Error("unknown command "+p);o&&o.push(o[0].clone())}}return o&&I.push(o),I},Mh.prototype.bbox=function(){var l=this._pbf;l.pos=this._geometry;for(var o=l.readVarint()+l.pos,c=1,p=0,g=0,b=0,x=1/0,I=-1/0,L=1/0,k=-1/0;l.pos>3}if(p--,c===1||c===2)(g+=l.readSVarint())I&&(I=g),(b+=l.readSVarint())k&&(k=b);else if(c!==7)throw new Error("unknown command "+c)}return[x,L,I,k]},Mh.prototype.toGeoJSON=function(l,o,c){var p,g,b=this.extent*Math.pow(2,c),x=this.extent*l,I=this.extent*o,L=this.loadGeometry(),k=Mh.types[this.type];function N(H){for(var Y=0;Y>3;g=x===1?p.readString():x===2?p.readFloat():x===3?p.readDouble():x===4?p.readVarint64():x===5?p.readVarint():x===6?p.readSVarint():x===7?p.readBoolean():null}return g}(c))}V0.prototype.feature=function(l){if(l<0||l>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[l];var o=this._pbf.readVarint()+this._pbf.pos;return new E2(this._pbf,o,this.extent,this._keys,this._values)};var T2=B0;function L2(l,o,c){if(l===3){var p=new T2(c,c.readVarint()+c.pos);p.length&&(o[p.name]=p)}}hu.VectorTile=function(l,o){this.layers=l.readFields(L2,{},o)},hu.VectorTileFeature=F0,hu.VectorTileLayer=B0;const M2=hu.VectorTileFeature.types,w_=Math.pow(2,13);function gp(l,o,c,p,g,b,x,I){l.emplaceBack(o,c,2*Math.floor(p*w_)+x,g*w_*2,b*w_*2,Math.round(I))}class S_{constructor(o){this.zoom=o.zoom,this.overscaling=o.overscaling,this.layers=o.layers,this.layerIds=this.layers.map(c=>c.id),this.index=o.index,this.hasPattern=!1,this.layoutVertexArray=new it,this.centroidVertexArray=new U,this.indexArray=new $t,this.programConfigurations=new Ii(o.layers,o.zoom),this.segments=new pe,this.stateDependentLayerIds=this.layers.filter(c=>c.isStateDependent()).map(c=>c.id)}populate(o,c,p){this.features=[],this.hasPattern=v_("fill-extrusion",this.layers,c);for(const{feature:g,id:b,index:x,sourceLayerIndex:I}of o){const L=this.layers[0]._featureFilter.needGeometry,k=Ml(g,L);if(!this.layers[0]._featureFilter.filter(new mi(this.zoom),k,p))continue;const N={id:b,sourceLayerIndex:I,index:x,geometry:L?k.geometry:Ll(g),properties:g.properties,type:g.type,patterns:{}};this.hasPattern?this.features.push(b_("fill-extrusion",this.layers,N,this.zoom,c)):this.addFeature(N,N.geometry,x,p,{}),c.featureIndex.insert(g,N.geometry,x,I,this.index,!0)}}addFeatures(o,c,p){for(const g of this.features){const{geometry:b}=g;this.addFeature(g,b,g.index,c,p)}}update(o,c,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,c,this.stateDependentLayers,p)}isEmpty(){return this.layoutVertexArray.length===0&&this.centroidVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(o){this.uploaded||(this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,x2),this.centroidVertexBuffer=o.createVertexBuffer(this.centroidVertexArray,b2.members,!0),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.centroidVertexBuffer.destroy())}addFeature(o,c,p,g,b){const x={x:0,y:0,vertexCount:0};for(const I of y_(c,500)){let L=0;for(const Y of I)L+=Y.length;let k=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray);for(const Y of I){if(Y.length===0||k2(Y))continue;let et=0;for(let at=0;at=1){const Dt=Y[at-1];if(!P2(gt,Dt)){k.vertexLength+4>pe.MAX_VERTEX_ARRAY_LENGTH&&(k=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));const xt=gt.sub(Dt)._perp()._unit(),Lt=Dt.dist(gt);et+Lt>32768&&(et=0),gp(this.layoutVertexArray,gt.x,gt.y,xt.x,xt.y,0,0,et),gp(this.layoutVertexArray,gt.x,gt.y,xt.x,xt.y,0,1,et),x.x+=2*gt.x,x.y+=2*gt.y,x.vertexCount+=2,et+=Lt,gp(this.layoutVertexArray,Dt.x,Dt.y,xt.x,xt.y,0,0,et),gp(this.layoutVertexArray,Dt.x,Dt.y,xt.x,xt.y,0,1,et),x.x+=2*Dt.x,x.y+=2*Dt.y,x.vertexCount+=2;const Kt=k.vertexLength;this.indexArray.emplaceBack(Kt,Kt+2,Kt+1),this.indexArray.emplaceBack(Kt+1,Kt+2,Kt+3),k.vertexLength+=4,k.primitiveLength+=2}}}}if(k.vertexLength+L>pe.MAX_VERTEX_ARRAY_LENGTH&&(k=this.segments.prepareSegment(L,this.layoutVertexArray,this.indexArray)),M2[o.type]!=="Polygon")continue;const N=[],z=[],q=k.vertexLength;for(const Y of I)if(Y.length!==0){Y!==I[0]&&z.push(N.length/2);for(let et=0;etBi)||l.y===o.y&&(l.y<0||l.y>Bi)}function k2(l){return l.every(o=>o.x<0)||l.every(o=>o.x>Bi)||l.every(o=>o.y<0)||l.every(o=>o.y>Bi)}let U0;Ie("FillExtrusionBucket",S_,{omit:["layers","features"]});var A2={get paint(){return U0=U0||new vo({"fill-extrusion-opacity":new De(Bt["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new Ue(Bt["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new De(Bt["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new De(Bt["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new gh(Bt["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new Ue(Bt["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new Ue(Bt["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new De(Bt["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})}};class D2 extends Is{constructor(o){super(o,A2)}createBucket(o){return new S_(o)}queryRadius(){return cm(this.paint.get("fill-extrusion-translate"))}is3D(){return!0}queryIntersectsFeature(o,c,p,g,b,x,I,L){const k=hm(o,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),x.angle,I),N=this.paint.get("fill-extrusion-height").evaluate(c,p),z=this.paint.get("fill-extrusion-base").evaluate(c,p),q=function(Y,et,at,gt){const Dt=[];for(const xt of Y){const Lt=[xt.x,xt.y,0,1];fm(Lt,Lt,et),Dt.push(new E(Lt[0]/Lt[3],Lt[1]/Lt[3]))}return Dt}(k,L),H=function(Y,et,at,gt){const Dt=[],xt=[],Lt=gt[8]*et,Kt=gt[9]*et,Qt=gt[10]*et,xe=gt[11]*et,Me=gt[8]*at,be=gt[9]*at,ye=gt[10]*at,he=gt[11]*at;for(const Ce of Y){const ge=[],oe=[];for(const Ve of Ce){const Ae=Ve.x,vn=Ve.y,ci=gt[0]*Ae+gt[4]*vn+gt[12],_i=gt[1]*Ae+gt[5]*vn+gt[13],mr=gt[2]*Ae+gt[6]*vn+gt[14],ls=gt[3]*Ae+gt[7]*vn+gt[15],xo=mr+Qt,or=ls+xe,Rr=ci+Me,qr=_i+be,wo=mr+ye,So=ls+he,gr=new E((ci+Lt)/or,(_i+Kt)/or);gr.z=xo/or,ge.push(gr);const _r=new E(Rr/So,qr/So);_r.z=wo/So,oe.push(_r)}Dt.push(ge),xt.push(oe)}return[Dt,xt]}(g,z,N,L);return function(Y,et,at){let gt=1/0;sp(at,et)&&(gt=G0(at,et[0]));for(let Dt=0;Dtc.id),this.index=o.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach(c=>{this.gradients[c.id]={}}),this.layoutVertexArray=new ct,this.layoutVertexArray2=new tt,this.indexArray=new $t,this.programConfigurations=new Ii(o.layers,o.zoom),this.segments=new pe,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter(c=>c.isStateDependent()).map(c=>c.id)}populate(o,c,p){this.hasPattern=v_("line",this.layers,c);const g=this.layers[0].layout.get("line-sort-key"),b=!g.isConstant(),x=[];for(const{feature:I,id:L,index:k,sourceLayerIndex:N}of o){const z=this.layers[0]._featureFilter.needGeometry,q=Ml(I,z);if(!this.layers[0]._featureFilter.filter(new mi(this.zoom),q,p))continue;const H=b?g.evaluate(q,{},p):void 0,Y={id:L,properties:I.properties,type:I.type,sourceLayerIndex:N,index:k,geometry:z?q.geometry:Ll(I),patterns:{},sortKey:H};x.push(Y)}b&&x.sort((I,L)=>I.sortKey-L.sortKey);for(const I of x){const{geometry:L,index:k,sourceLayerIndex:N}=I;if(this.hasPattern){const z=b_("line",this.layers,I,this.zoom,c);this.patternFeatures.push(z)}else this.addFeature(I,L,k,p,{});c.featureIndex.insert(o[k].feature,L,k,N,this.index)}}update(o,c,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(o,c,this.stateDependentLayers,p)}addFeatures(o,c,p){for(const g of this.patternFeatures)this.addFeature(g,g.geometry,g.index,c,p)}isEmpty(){return this.layoutVertexArray.length===0}uploadPending(){return!this.uploaded||this.programConfigurations.needsUpload}upload(o){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=o.createVertexBuffer(this.layoutVertexArray2,z2)),this.layoutVertexBuffer=o.createVertexBuffer(this.layoutVertexArray,N2),this.indexBuffer=o.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(o),this.uploaded=!0}destroy(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())}lineFeatureClips(o){if(o.properties&&Object.prototype.hasOwnProperty.call(o.properties,"mapbox_clip_start")&&Object.prototype.hasOwnProperty.call(o.properties,"mapbox_clip_end"))return{start:+o.properties.mapbox_clip_start,end:+o.properties.mapbox_clip_end}}addFeature(o,c,p,g,b){const x=this.layers[0].layout,I=x.get("line-join").evaluate(o,{}),L=x.get("line-cap"),k=x.get("line-miter-limit"),N=x.get("line-round-limit");this.lineClips=this.lineFeatureClips(o);for(const z of c)this.addLine(z,o,I,L,k,N);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,o,p,b,g)}addLine(o,c,p,g,b,x){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(let gt=0;gt=2&&o[L-1].equals(o[L-2]);)L--;let k=0;for(;k0;if(xe&>>k){const he=q.dist(H);if(he>2*N){const Ce=q.sub(q.sub(H)._mult(N/he)._round());this.updateDistance(H,Ce),this.addCurrentVertex(Ce,et,0,0,z),H=Ce}}const be=H&&Y;let ye=be?p:I?"butt":g;if(be&&ye==="round"&&(Ktb&&(ye="bevel"),ye==="bevel"&&(Kt>2&&(ye="flipbevel"),Kt100)Dt=at.mult(-1);else{const he=Kt*et.add(at).mag()/et.sub(at).mag();Dt._perp()._mult(he*(Me?-1:1))}this.addCurrentVertex(q,Dt,0,0,z),this.addCurrentVertex(q,Dt.mult(-1),0,0,z)}else if(ye==="bevel"||ye==="fakeround"){const he=-Math.sqrt(Kt*Kt-1),Ce=Me?he:0,ge=Me?0:he;if(H&&this.addCurrentVertex(q,et,Ce,ge,z),ye==="fakeround"){const oe=Math.round(180*Qt/Math.PI/20);for(let Ve=1;Ve2*N){const Ce=q.add(Y.sub(q)._mult(N/he)._round());this.updateDistance(q,Ce),this.addCurrentVertex(Ce,at,0,0,z),q=Ce}}}}addCurrentVertex(o,c,p,g,b,x=!1){const I=c.y*g-c.x,L=-c.y-c.x*g;this.addHalfVertex(o,c.x+c.y*p,c.y-c.x*p,x,!1,p,b),this.addHalfVertex(o,I,L,x,!0,-g,b),this.distance>j0/2&&this.totalDistance===0&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(o,c,p,g,b,x))}addHalfVertex({x:o,y:c},p,g,b,x,I,L){const k=.5*(this.lineClips?this.scaledDistance*(j0-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((o<<1)+(b?1:0),(c<<1)+(x?1:0),Math.round(63*p)+128,Math.round(63*g)+128,1+(I===0?0:I<0?-1:1)|(63&k)<<2,k>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);const N=L.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,N),L.primitiveLength++),x?this.e2=N:this.e1=N}updateScaledDistance(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance}updateDistance(o,c){this.distance+=o.dist(c),this.updateScaledDistance()}}let q0,Z0;Ie("LineBucket",I_,{omit:["layers","patternFeatures"]});var W0={get paint(){return Z0=Z0||new vo({"line-opacity":new Ue(Bt.paint_line["line-opacity"]),"line-color":new Ue(Bt.paint_line["line-color"]),"line-translate":new De(Bt.paint_line["line-translate"]),"line-translate-anchor":new De(Bt.paint_line["line-translate-anchor"]),"line-width":new Ue(Bt.paint_line["line-width"]),"line-gap-width":new Ue(Bt.paint_line["line-gap-width"]),"line-offset":new Ue(Bt.paint_line["line-offset"]),"line-blur":new Ue(Bt.paint_line["line-blur"]),"line-dasharray":new sc(Bt.paint_line["line-dasharray"]),"line-pattern":new gh(Bt.paint_line["line-pattern"]),"line-gradient":new $f(Bt.paint_line["line-gradient"])})},get layout(){return q0=q0||new vo({"line-cap":new De(Bt.layout_line["line-cap"]),"line-join":new Ue(Bt.layout_line["line-join"]),"line-miter-limit":new De(Bt.layout_line["line-miter-limit"]),"line-round-limit":new De(Bt.layout_line["line-round-limit"]),"line-sort-key":new Ue(Bt.layout_line["line-sort-key"])})}};class V2 extends Ue{possiblyEvaluate(o,c){return c=new mi(Math.floor(c.zoom),{now:c.now,fadeDuration:c.fadeDuration,zoomHistory:c.zoomHistory,transition:c.transition}),super.possiblyEvaluate(o,c)}evaluate(o,c,p,g){return c=st({},c,{zoom:Math.floor(c.zoom)}),super.evaluate(o,c,p,g)}}let _m;class U2 extends Is{constructor(o){super(o,W0),this.gradientVersion=0,_m||(_m=new V2(W0.paint.properties["line-width"].specification),_m.useIntegerZoom=!0)}_handleSpecialPaintPropertyUpdate(o){if(o==="line-gradient"){const c=this.gradientExpression();this.stepInterpolant=!!function(p){return p._styleExpression!==void 0}(c)&&c._styleExpression.expression instanceof Ju,this.gradientVersion=(this.gradientVersion+1)%Number.MAX_SAFE_INTEGER}}gradientExpression(){return this._transitionablePaint._values["line-gradient"].value.expression}recalculate(o,c){super.recalculate(o,c),this.paint._values["line-floorwidth"]=_m.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,o)}createBucket(o){return new I_(o)}queryRadius(o){const c=o,p=H0(up("line-width",this,c),up("line-gap-width",this,c)),g=up("line-offset",this,c);return p/2+Math.abs(g)+cm(this.paint.get("line-translate"))}queryIntersectsFeature(o,c,p,g,b,x,I){const L=hm(o,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),x.angle,I),k=I/2*H0(this.paint.get("line-width").evaluate(c,p),this.paint.get("line-gap-width").evaluate(c,p)),N=this.paint.get("line-offset").evaluate(c,p);return N&&(g=function(z,q){const H=[];for(let Y=0;Y=3){for(let at=0;at0?o+2*l:l}const G2=Zi([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),j2=Zi([{name:"a_projected_pos",components:3,type:"Float32"}],4);Zi([{name:"a_fade_opacity",components:1,type:"Uint32"}],4);const q2=Zi([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}]);Zi([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]);const X0=Zi([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4),Z2=Zi([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function W2(l,o,c){return l.sections.forEach(p=>{p.text=function(g,b,x){const I=b.layout.get("text-transform").evaluate(x,{});return I==="uppercase"?g=g.toLocaleUpperCase():I==="lowercase"&&(g=g.toLocaleLowerCase()),$a.applyArabicShaping&&(g=$a.applyArabicShaping(g)),g}(p.text,o,c)}),l}Zi([{name:"triangle",components:3,type:"Uint16"}]),Zi([{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"}]),Zi([{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"}]),Zi([{type:"Float32",name:"offsetX"}]),Zi([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]),Zi([{type:"Uint16",name:"textAnchor"},{type:"Float32",components:2,name:"textOffset"}]);const yp={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\":"\","]":"﹈","^":"^",_:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};var dr=24,$0=Kn,Y0=function(l,o,c,p,g){var b,x,I=8*g-p-1,L=(1<>1,N=-7,z=c?g-1:0,q=c?-1:1,H=l[o+z];for(z+=q,b=H&(1<<-N)-1,H>>=-N,N+=I;N>0;b=256*b+l[o+z],z+=q,N-=8);for(x=b&(1<<-N)-1,b>>=-N,N+=p;N>0;x=256*x+l[o+z],z+=q,N-=8);if(b===0)b=1-k;else{if(b===L)return x?NaN:1/0*(H?-1:1);x+=Math.pow(2,p),b-=k}return(H?-1:1)*x*Math.pow(2,b-p)},K0=function(l,o,c,p,g,b){var x,I,L,k=8*b-g-1,N=(1<>1,q=g===23?Math.pow(2,-24)-Math.pow(2,-77):0,H=p?0:b-1,Y=p?1:-1,et=o<0||o===0&&1/o<0?1:0;for(o=Math.abs(o),isNaN(o)||o===1/0?(I=isNaN(o)?1:0,x=N):(x=Math.floor(Math.log(o)/Math.LN2),o*(L=Math.pow(2,-x))<1&&(x--,L*=2),(o+=x+z>=1?q/L:q*Math.pow(2,1-z))*L>=2&&(x++,L/=2),x+z>=N?(I=0,x=N):x+z>=1?(I=(o*L-1)*Math.pow(2,g),x+=z):(I=o*Math.pow(2,z-1)*Math.pow(2,g),x=0));g>=8;l[c+H]=255&I,H+=Y,I/=256,g-=8);for(x=x<0;l[c+H]=255&x,H+=Y,x/=256,k-=8);l[c+H-Y]|=128*et};function Kn(l){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(l)?l:new Uint8Array(l||0),this.pos=0,this.type=0,this.length=this.buf.length}Kn.Varint=0,Kn.Fixed64=1,Kn.Bytes=2,Kn.Fixed32=5;var E_=4294967296,J0=1/E_,Q0=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function Pl(l){return l.type===Kn.Bytes?l.readVarint()+l.pos:l.pos+1}function Ph(l,o,c){return c?4294967296*o+(l>>>0):4294967296*(o>>>0)+(l>>>0)}function tv(l,o,c){var p=o<=16383?1:o<=2097151?2:o<=268435455?3:Math.floor(Math.log(o)/(7*Math.LN2));c.realloc(p);for(var g=c.pos-1;g>=l;g--)c.buf[g+p]=c.buf[g]}function H2(l,o){for(var c=0;c>>8,l[c+2]=o>>>16,l[c+3]=o>>>24}function ev(l,o){return(l[o]|l[o+1]<<8|l[o+2]<<16)+(l[o+3]<<24)}Kn.prototype={destroy:function(){this.buf=null},readFields:function(l,o,c){for(c=c||this.length;this.pos>3,b=this.pos;this.type=7&p,l(g,o,this),this.pos===b&&this.skip(p)}return o},readMessage:function(l,o){return this.readFields(l,o,this.readVarint()+this.pos)},readFixed32:function(){var l=ym(this.buf,this.pos);return this.pos+=4,l},readSFixed32:function(){var l=ev(this.buf,this.pos);return this.pos+=4,l},readFixed64:function(){var l=ym(this.buf,this.pos)+ym(this.buf,this.pos+4)*E_;return this.pos+=8,l},readSFixed64:function(){var l=ym(this.buf,this.pos)+ev(this.buf,this.pos+4)*E_;return this.pos+=8,l},readFloat:function(){var l=Y0(this.buf,this.pos,!0,23,4);return this.pos+=4,l},readDouble:function(){var l=Y0(this.buf,this.pos,!0,52,8);return this.pos+=8,l},readVarint:function(l){var o,c,p=this.buf;return o=127&(c=p[this.pos++]),c<128?o:(o|=(127&(c=p[this.pos++]))<<7,c<128?o:(o|=(127&(c=p[this.pos++]))<<14,c<128?o:(o|=(127&(c=p[this.pos++]))<<21,c<128?o:function(g,b,x){var I,L,k=x.buf;if(I=(112&(L=k[x.pos++]))>>4,L<128||(I|=(127&(L=k[x.pos++]))<<3,L<128)||(I|=(127&(L=k[x.pos++]))<<10,L<128)||(I|=(127&(L=k[x.pos++]))<<17,L<128)||(I|=(127&(L=k[x.pos++]))<<24,L<128)||(I|=(1&(L=k[x.pos++]))<<31,L<128))return Ph(g,I,b);throw new Error("Expected varint not more than 10 bytes")}(o|=(15&(c=p[this.pos]))<<28,l,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var l=this.readVarint();return l%2==1?(l+1)/-2:l/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var l=this.readVarint()+this.pos,o=this.pos;return this.pos=l,l-o>=12&&Q0?function(c,p,g){return Q0.decode(c.subarray(p,g))}(this.buf,o,l):function(c,p,g){for(var b="",x=p;x239?4:N>223?3:N>191?2:1;if(x+q>g)break;q===1?N<128&&(z=N):q===2?(192&(I=c[x+1]))==128&&(z=(31&N)<<6|63&I)<=127&&(z=null):q===3?(L=c[x+2],(192&(I=c[x+1]))==128&&(192&L)==128&&((z=(15&N)<<12|(63&I)<<6|63&L)<=2047||z>=55296&&z<=57343)&&(z=null)):q===4&&(L=c[x+2],k=c[x+3],(192&(I=c[x+1]))==128&&(192&L)==128&&(192&k)==128&&((z=(15&N)<<18|(63&I)<<12|(63&L)<<6|63&k)<=65535||z>=1114112)&&(z=null)),z===null?(z=65533,q=1):z>65535&&(z-=65536,b+=String.fromCharCode(z>>>10&1023|55296),z=56320|1023&z),b+=String.fromCharCode(z),x+=q}return b}(this.buf,o,l)},readBytes:function(){var l=this.readVarint()+this.pos,o=this.buf.subarray(this.pos,l);return this.pos=l,o},readPackedVarint:function(l,o){if(this.type!==Kn.Bytes)return l.push(this.readVarint(o));var c=Pl(this);for(l=l||[];this.pos127;);else if(o===Kn.Bytes)this.pos=this.readVarint()+this.pos;else if(o===Kn.Fixed32)this.pos+=4;else{if(o!==Kn.Fixed64)throw new Error("Unimplemented type: "+o);this.pos+=8}},writeTag:function(l,o){this.writeVarint(l<<3|o)},realloc:function(l){for(var o=this.length||16;o268435455||l<0?function(o,c){var p,g;if(o>=0?(p=o%4294967296|0,g=o/4294967296|0):(g=~(-o/4294967296),4294967295^(p=~(-o%4294967296))?p=p+1|0:(p=0,g=g+1|0)),o>=18446744073709552e3||o<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");c.realloc(10),function(b,x,I){I.buf[I.pos++]=127&b|128,b>>>=7,I.buf[I.pos++]=127&b|128,b>>>=7,I.buf[I.pos++]=127&b|128,b>>>=7,I.buf[I.pos++]=127&b|128,I.buf[I.pos]=127&(b>>>=7)}(p,0,c),function(b,x){var I=(7&b)<<4;x.buf[x.pos++]|=I|((b>>>=3)?128:0),b&&(x.buf[x.pos++]=127&b|((b>>>=7)?128:0),b&&(x.buf[x.pos++]=127&b|((b>>>=7)?128:0),b&&(x.buf[x.pos++]=127&b|((b>>>=7)?128:0),b&&(x.buf[x.pos++]=127&b|((b>>>=7)?128:0),b&&(x.buf[x.pos++]=127&b)))))}(g,c)}(l,this):(this.realloc(4),this.buf[this.pos++]=127&l|(l>127?128:0),l<=127||(this.buf[this.pos++]=127&(l>>>=7)|(l>127?128:0),l<=127||(this.buf[this.pos++]=127&(l>>>=7)|(l>127?128:0),l<=127||(this.buf[this.pos++]=l>>>7&127))))},writeSVarint:function(l){this.writeVarint(l<0?2*-l-1:2*l)},writeBoolean:function(l){this.writeVarint(!!l)},writeString:function(l){l=String(l),this.realloc(4*l.length),this.pos++;var o=this.pos;this.pos=function(p,g,b){for(var x,I,L=0;L55295&&x<57344){if(!I){x>56319||L+1===g.length?(p[b++]=239,p[b++]=191,p[b++]=189):I=x;continue}if(x<56320){p[b++]=239,p[b++]=191,p[b++]=189,I=x;continue}x=I-55296<<10|x-56320|65536,I=null}else I&&(p[b++]=239,p[b++]=191,p[b++]=189,I=null);x<128?p[b++]=x:(x<2048?p[b++]=x>>6|192:(x<65536?p[b++]=x>>12|224:(p[b++]=x>>18|240,p[b++]=x>>12&63|128),p[b++]=x>>6&63|128),p[b++]=63&x|128)}return b}(this.buf,l,this.pos);var c=this.pos-o;c>=128&&tv(o,c,this),this.pos=o-1,this.writeVarint(c),this.pos+=c},writeFloat:function(l){this.realloc(4),K0(this.buf,l,this.pos,!0,23,4),this.pos+=4},writeDouble:function(l){this.realloc(8),K0(this.buf,l,this.pos,!0,52,8),this.pos+=8},writeBytes:function(l){var o=l.length;this.writeVarint(o),this.realloc(o);for(var c=0;c=128&&tv(c,p,this),this.pos=c-1,this.writeVarint(p),this.pos+=p},writeMessage:function(l,o,c){this.writeTag(l,Kn.Bytes),this.writeRawMessage(o,c)},writePackedVarint:function(l,o){o.length&&this.writeMessage(l,H2,o)},writePackedSVarint:function(l,o){o.length&&this.writeMessage(l,X2,o)},writePackedBoolean:function(l,o){o.length&&this.writeMessage(l,K2,o)},writePackedFloat:function(l,o){o.length&&this.writeMessage(l,$2,o)},writePackedDouble:function(l,o){o.length&&this.writeMessage(l,Y2,o)},writePackedFixed32:function(l,o){o.length&&this.writeMessage(l,J2,o)},writePackedSFixed32:function(l,o){o.length&&this.writeMessage(l,Q2,o)},writePackedFixed64:function(l,o){o.length&&this.writeMessage(l,tS,o)},writePackedSFixed64:function(l,o){o.length&&this.writeMessage(l,eS,o)},writeBytesField:function(l,o){this.writeTag(l,Kn.Bytes),this.writeBytes(o)},writeFixed32Field:function(l,o){this.writeTag(l,Kn.Fixed32),this.writeFixed32(o)},writeSFixed32Field:function(l,o){this.writeTag(l,Kn.Fixed32),this.writeSFixed32(o)},writeFixed64Field:function(l,o){this.writeTag(l,Kn.Fixed64),this.writeFixed64(o)},writeSFixed64Field:function(l,o){this.writeTag(l,Kn.Fixed64),this.writeSFixed64(o)},writeVarintField:function(l,o){this.writeTag(l,Kn.Varint),this.writeVarint(o)},writeSVarintField:function(l,o){this.writeTag(l,Kn.Varint),this.writeSVarint(o)},writeStringField:function(l,o){this.writeTag(l,Kn.Bytes),this.writeString(o)},writeFloatField:function(l,o){this.writeTag(l,Kn.Fixed32),this.writeFloat(o)},writeDoubleField:function(l,o){this.writeTag(l,Kn.Fixed64),this.writeDouble(o)},writeBooleanField:function(l,o){this.writeVarintField(l,!!o)}};var C_=_($0);const T_=3;function nS(l,o,c){l===1&&c.readMessage(iS,o)}function iS(l,o,c){if(l===3){const{id:p,bitmap:g,width:b,height:x,left:I,top:L,advance:k}=c.readMessage(rS,{});o.push({id:p,bitmap:new hp({width:b+2*T_,height:x+2*T_},g),metrics:{width:b,height:x,left:I,top:L,advance:k}})}}function rS(l,o,c){l===1?o.id=c.readVarint():l===2?o.bitmap=c.readBytes():l===3?o.width=c.readVarint():l===4?o.height=c.readVarint():l===5?o.left=c.readSVarint():l===6?o.top=c.readSVarint():l===7&&(o.advance=c.readVarint())}const nv=T_;function iv(l){let o=0,c=0;for(const x of l)o+=x.w*x.h,c=Math.max(c,x.w);l.sort((x,I)=>I.h-x.h);const p=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(o/.95)),c),h:1/0}];let g=0,b=0;for(const x of l)for(let I=p.length-1;I>=0;I--){const L=p[I];if(!(x.w>L.w||x.h>L.h)){if(x.x=L.x,x.y=L.y,b=Math.max(b,x.y+x.h),g=Math.max(g,x.x+x.w),x.w===L.w&&x.h===L.h){const k=p.pop();I=0&&p>=o&&bm[this.text.charCodeAt(p)];p--)c--;this.text=this.text.substring(o,c),this.sectionIndex=this.sectionIndex.slice(o,c)}substring(o,c){const p=new Ah;return p.text=this.text.substring(o,c),p.sectionIndex=this.sectionIndex.slice(o,c),p.sections=this.sections,p}toString(){return this.text}getMaxScale(){return this.sectionIndex.reduce((o,c)=>Math.max(o,this.sections[c].scale),0)}addTextSection(o,c){this.text+=o.text,this.sections.push(bp.forText(o.scale,o.fontStack||c));const p=this.sections.length-1;for(let g=0;g=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)}}function vm(l,o,c,p,g,b,x,I,L,k,N,z,q,H,Y,et){const at=Ah.fromFeature(l,g);let gt;z===h.ah.vertical&&at.verticalizePunctuation();const{processBidirectionalText:Dt,processStyledBidirectionalText:xt}=$a;if(Dt&&at.sections.length===1){gt=[];const Qt=Dt(at.toString(),M_(at,k,b,o,p,H,Y));for(const xe of Qt){const Me=new Ah;Me.text=xe,Me.sections=at.sections;for(let be=0;be0&&Al>Vo&&(Vo=Al)}else{const Ts=Me[In.fontStack],Go=Ts&&Ts[Zr];if(Go&&Go.rect)Sa=Go.rect,Ys=Go.metrics;else{const Al=xe[In.fontStack],Ep=Al&&Al[Zr];if(!Ep)continue;Ys=Ep.metrics}vr=(_r-In.scale)*dr}Ks?(Qt.verticalizable=!0,ao.push({glyph:Zr,imageName:Ia,x:ci,y:_i+vr,vertical:Ks,scale:In.scale,fontStack:In.fontStack,sectionIndex:lo,metrics:Ys,rect:Sa}),ci+=kl*In.scale+Ve):(ao.push({glyph:Zr,imageName:Ia,x:ci,y:_i+vr,vertical:Ks,scale:In.scale,fontStack:In.fontStack,sectionIndex:lo,metrics:Ys,rect:Sa}),ci+=Ys.advance*In.scale+Ve)}ao.length!==0&&(mr=Math.max(ci-Ve,mr),aS(ao,0,ao.length-1,xo,Vo)),ci=0;const Uo=he*_r+Vo;Io.lineOffset=Math.max(Vo,so),_i+=Uo,ls=Math.max(Uo,ls),++or}var Rr;const qr=_i-vp,{horizontalAlign:wo,verticalAlign:So}=P_(Ce);(function(gr,_r,so,Io,ao,Vo,Uo,yr,In){const lo=(_r-so)*ao;let Zr=0;Zr=Vo!==Uo?-yr*Io-vp:(-Io*In+.5)*Uo;for(const vr of gr)for(const Ys of vr.positionedGlyphs)Ys.x+=lo,Ys.y+=Zr})(Qt.positionedLines,xo,wo,So,mr,ls,he,qr,ye.length),Qt.top+=-So*qr,Qt.bottom=Qt.top+qr,Qt.left+=-wo*mr,Qt.right=Qt.left+mr}(Kt,o,c,p,gt,x,I,L,z,k,q,et),!function(Qt){for(const xe of Qt)if(xe.positionedGlyphs.length!==0)return!1;return!0}(Lt)&&Kt}const bm={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},oS={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function ov(l,o,c,p,g,b){if(o.imageName){const x=p[o.imageName];return x?x.displaySize[0]*o.scale*dr/b+g:0}{const x=c[o.fontStack],I=x&&x[l];return I?I.metrics.advance*o.scale+g:0}}function sv(l,o,c,p){const g=Math.pow(l-o,2);return p?l=0;let N=0;for(let q=0;qx.id),this.index=o.index,this.pixelRatio=o.pixelRatio,this.sourceLayerIndex=o.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=h_([]),this.placementViewportMatrix=h_([]);const c=this.layers[0]._unevaluatedLayout._values;this.textSizeData=cv(this.zoom,c["text-size"]),this.iconSizeData=cv(this.zoom,c["icon-size"]);const p=this.layers[0].layout,g=p.get("symbol-sort-key"),b=p.get("symbol-z-order");this.canOverlap=k_(p,"text-overlap","text-allow-overlap")!=="never"||k_(p,"icon-overlap","icon-allow-overlap")!=="never"||p.get("text-ignore-placement")||p.get("icon-ignore-placement"),this.sortFeaturesByKey=b!=="viewport-y"&&!g.isConstant(),this.sortFeaturesByY=(b==="viewport-y"||b==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,p.get("symbol-placement")==="point"&&(this.writingModes=p.get("text-writing-mode").map(x=>h.ah[x])),this.stateDependentLayerIds=this.layers.filter(x=>x.isStateDependent()).map(x=>x.id),this.sourceID=o.sourceID}createArrays(){this.text=new D_(new Ii(this.layers,this.zoom,o=>/^text/.test(o))),this.icon=new D_(new Ii(this.layers,this.zoom,o=>/^icon/.test(o))),this.glyphOffsetArray=new v,this.lineVertexArray=new C,this.symbolInstances=new m,this.textAnchorOffsets=new P}calculateGlyphDependencies(o,c,p,g,b){for(let x=0;x0)&&(x.value.kind!=="constant"||x.value.value.length>0),N=L.value.kind!=="constant"||!!L.value.value||Object.keys(L.parameters).length>0,z=b.get("symbol-sort-key");if(this.features=[],!k&&!N)return;const q=c.iconDependencies,H=c.glyphDependencies,Y=c.availableImages,et=new mi(this.zoom);for(const{feature:at,id:gt,index:Dt,sourceLayerIndex:xt}of o){const Lt=g._featureFilter.needGeometry,Kt=Ml(at,Lt);if(!g._featureFilter.filter(et,Kt,p))continue;let Qt,xe;if(Lt||(Kt.geometry=Ll(at)),k){const be=g.getValueAndResolveTokens("text-field",Kt,p,Y),ye=Ro.factory(be),he=this.hasRTLText=this.hasRTLText||hS(ye);(!he||$a.getRTLTextPluginStatus()==="unavailable"||he&&$a.isParsed())&&(Qt=W2(ye,g,Kt))}if(N){const be=g.getValueAndResolveTokens("icon-image",Kt,p,Y);xe=be instanceof os?be:os.fromString(be)}if(!Qt&&!xe)continue;const Me=this.sortFeaturesByKey?z.evaluate(Kt,{},p):void 0;if(this.features.push({id:gt,text:Qt,icon:xe,index:Dt,sourceLayerIndex:xt,geometry:Kt.geometry,properties:at.properties,type:uS[at.type],sortKey:Me}),xe&&(q[xe.name]=!0),Qt){const be=x.evaluate(Kt,{},p).join(","),ye=b.get("text-rotation-alignment")!=="viewport"&&b.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(h.ah.vertical)>=0;for(const he of Qt.sections)if(he.image)q[he.image.name]=!0;else{const Ce=uu(Qt.toString()),ge=he.fontStack||be,oe=H[ge]=H[ge]||{};this.calculateGlyphDependencies(he.text,oe,ye,this.allowVerticalPlacement,Ce)}}}b.get("symbol-placement")==="line"&&(this.features=function(at){const gt={},Dt={},xt=[];let Lt=0;function Kt(be){xt.push(at[be]),Lt++}function Qt(be,ye,he){const Ce=Dt[be];return delete Dt[be],Dt[ye]=Ce,xt[Ce].geometry[0].pop(),xt[Ce].geometry[0]=xt[Ce].geometry[0].concat(he[0]),Ce}function xe(be,ye,he){const Ce=gt[ye];return delete gt[ye],gt[be]=Ce,xt[Ce].geometry[0].shift(),xt[Ce].geometry[0]=he[0].concat(xt[Ce].geometry[0]),Ce}function Me(be,ye,he){const Ce=he?ye[0][ye[0].length-1]:ye[0][0];return`${be}:${Ce.x}:${Ce.y}`}for(let be=0;bebe.geometry)}(this.features)),this.sortFeaturesByKey&&this.features.sort((at,gt)=>at.sortKey-gt.sortKey)}update(o,c,p){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(o,c,this.layers,p),this.icon.programConfigurations.updatePaintArrays(o,c,this.layers,p))}isEmpty(){return this.symbolInstances.length===0&&!this.hasRTLText}uploadPending(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload}upload(o){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(o),this.iconCollisionBox.upload(o)),this.text.upload(o,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(o,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(o,c){const p=this.lineVertexArray.length;if(o.segment!==void 0){let g=o.dist(c[o.segment+1]),b=o.dist(c[o.segment]);const x={};for(let I=o.segment+1;I=0;I--)x[I]={x:c[I].x,y:c[I].y,tileUnitDistanceFromAnchor:b},I>0&&(b+=c[I-1].dist(c[I]));for(let I=0;I0}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(o,c){const p=o.placedSymbolArray.get(c),g=p.vertexStartIndex+4*p.numGlyphs;for(let b=p.vertexStartIndex;bg[I]-g[L]||b[L]-b[I]),x}addToSortKeyRanges(o,c){const p=this.sortKeyRanges[this.sortKeyRanges.length-1];p&&p.sortKey===c?p.symbolInstanceEnd=o+1:this.sortKeyRanges.push({sortKey:c,symbolInstanceStart:o,symbolInstanceEnd:o+1})}sortFeatures(o){if(this.sortFeaturesByY&&this.sortedAngle!==o&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(o),this.sortedAngle=o,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(const c of this.symbolInstanceIndexes){const p=this.symbolInstances.get(c);this.featureSortOrder.push(p.featureIndex),[p.rightJustifiedTextSymbolIndex,p.centerJustifiedTextSymbolIndex,p.leftJustifiedTextSymbolIndex].forEach((g,b,x)=>{g>=0&&x.indexOf(g)===b&&this.addIndicesForPlacedSymbol(this.text,g)}),p.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,p.verticalPlacedTextSymbolIndex),p.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,p.placedIconSymbolIndex),p.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,p.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}}}let hv,fv;Ie("SymbolBucket",Dh,{omit:["layers","collisionBoxArray","features","compareText"]}),Dh.MAX_GLYPHS=65535,Dh.addDynamicAttributes=A_;var N_={get paint(){return fv=fv||new vo({"icon-opacity":new Ue(Bt.paint_symbol["icon-opacity"]),"icon-color":new Ue(Bt.paint_symbol["icon-color"]),"icon-halo-color":new Ue(Bt.paint_symbol["icon-halo-color"]),"icon-halo-width":new Ue(Bt.paint_symbol["icon-halo-width"]),"icon-halo-blur":new Ue(Bt.paint_symbol["icon-halo-blur"]),"icon-translate":new De(Bt.paint_symbol["icon-translate"]),"icon-translate-anchor":new De(Bt.paint_symbol["icon-translate-anchor"]),"text-opacity":new Ue(Bt.paint_symbol["text-opacity"]),"text-color":new Ue(Bt.paint_symbol["text-color"],{runtimeType:Fi,getOverride:l=>l.textColor,hasOverride:l=>!!l.textColor}),"text-halo-color":new Ue(Bt.paint_symbol["text-halo-color"]),"text-halo-width":new Ue(Bt.paint_symbol["text-halo-width"]),"text-halo-blur":new Ue(Bt.paint_symbol["text-halo-blur"]),"text-translate":new De(Bt.paint_symbol["text-translate"]),"text-translate-anchor":new De(Bt.paint_symbol["text-translate-anchor"])})},get layout(){return hv=hv||new vo({"symbol-placement":new De(Bt.layout_symbol["symbol-placement"]),"symbol-spacing":new De(Bt.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new De(Bt.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new Ue(Bt.layout_symbol["symbol-sort-key"]),"symbol-z-order":new De(Bt.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new De(Bt.layout_symbol["icon-allow-overlap"]),"icon-overlap":new De(Bt.layout_symbol["icon-overlap"]),"icon-ignore-placement":new De(Bt.layout_symbol["icon-ignore-placement"]),"icon-optional":new De(Bt.layout_symbol["icon-optional"]),"icon-rotation-alignment":new De(Bt.layout_symbol["icon-rotation-alignment"]),"icon-size":new Ue(Bt.layout_symbol["icon-size"]),"icon-text-fit":new De(Bt.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new De(Bt.layout_symbol["icon-text-fit-padding"]),"icon-image":new Ue(Bt.layout_symbol["icon-image"]),"icon-rotate":new Ue(Bt.layout_symbol["icon-rotate"]),"icon-padding":new Ue(Bt.layout_symbol["icon-padding"]),"icon-keep-upright":new De(Bt.layout_symbol["icon-keep-upright"]),"icon-offset":new Ue(Bt.layout_symbol["icon-offset"]),"icon-anchor":new Ue(Bt.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new De(Bt.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new De(Bt.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new De(Bt.layout_symbol["text-rotation-alignment"]),"text-field":new Ue(Bt.layout_symbol["text-field"]),"text-font":new Ue(Bt.layout_symbol["text-font"]),"text-size":new Ue(Bt.layout_symbol["text-size"]),"text-max-width":new Ue(Bt.layout_symbol["text-max-width"]),"text-line-height":new De(Bt.layout_symbol["text-line-height"]),"text-letter-spacing":new Ue(Bt.layout_symbol["text-letter-spacing"]),"text-justify":new Ue(Bt.layout_symbol["text-justify"]),"text-radial-offset":new Ue(Bt.layout_symbol["text-radial-offset"]),"text-variable-anchor":new De(Bt.layout_symbol["text-variable-anchor"]),"text-variable-anchor-offset":new Ue(Bt.layout_symbol["text-variable-anchor-offset"]),"text-anchor":new Ue(Bt.layout_symbol["text-anchor"]),"text-max-angle":new De(Bt.layout_symbol["text-max-angle"]),"text-writing-mode":new De(Bt.layout_symbol["text-writing-mode"]),"text-rotate":new Ue(Bt.layout_symbol["text-rotate"]),"text-padding":new De(Bt.layout_symbol["text-padding"]),"text-keep-upright":new De(Bt.layout_symbol["text-keep-upright"]),"text-transform":new Ue(Bt.layout_symbol["text-transform"]),"text-offset":new Ue(Bt.layout_symbol["text-offset"]),"text-allow-overlap":new De(Bt.layout_symbol["text-allow-overlap"]),"text-overlap":new De(Bt.layout_symbol["text-overlap"]),"text-ignore-placement":new De(Bt.layout_symbol["text-ignore-placement"]),"text-optional":new De(Bt.layout_symbol["text-optional"])})}};class pv{constructor(o){if(o.property.overrides===void 0)throw new Error("overrides must be provided to instantiate FormatSectionOverride class");this.type=o.property.overrides?o.property.overrides.runtimeType:Qi,this.defaultValue=o}evaluate(o){if(o.formattedSection){const c=this.defaultValue.property.overrides;if(c&&c.hasOverride(o.formattedSection))return c.getOverride(o.formattedSection)}return o.feature&&o.featureState?this.defaultValue.evaluate(o.feature,o.featureState):this.defaultValue.property.specification.default}eachChild(o){this.defaultValue.isConstant()||o(this.defaultValue.value._styleExpression.expression)}outputDefined(){return!1}serialize(){return null}}Ie("FormatSectionOverride",pv,{omit:["defaultValue"]});class wm extends Is{constructor(o){super(o,N_)}recalculate(o,c){if(super.recalculate(o,c),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")==="map"?"map":"viewport"),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){const p=this.layout.get("text-writing-mode");if(p){const g=[];for(const b of p)g.indexOf(b)<0&&g.push(b);this.layout._values["text-writing-mode"]=g}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()}getValueAndResolveTokens(o,c,p,g){const b=this.layout.get(o).evaluate(c,{},p,g),x=this._unevaluatedLayout._values[o];return x.isDataDriven()||ni(x.value)||!b?b:function(I,L){return L.replace(/{([^{}]+)}/g,(k,N)=>I&&N in I?String(I[N]):"")}(c.properties,b)}createBucket(o){return new Dh(o)}queryRadius(){return 0}queryIntersectsFeature(){throw new Error("Should take a different path in FeatureIndex")}_setPaintOverrides(){for(const o of N_.paint.overridableProperties){if(!wm.hasPaintOverride(this.layout,o))continue;const c=this.paint.get(o),p=new pv(c),g=new ui(p,c.property.specification);let b=null;b=c.value.kind==="constant"||c.value.kind==="source"?new nh("source",g):new Ff("composite",g,c.value.zoomStops),this.paint._values[o]=new Ss(c.property,b,c.parameters)}}_handleOverridablePaintPropertyUpdate(o,c,p){return!(!this.layout||c.isDataDriven()||p.isDataDriven())&&wm.hasPaintOverride(this.layout,o)}static hasPaintOverride(o,c){const p=o.get("text-field"),g=N_.paint.properties[c];let b=!1;const x=I=>{for(const L of I)if(g.overrides&&g.overrides.hasOverride(L))return void(b=!0)};if(p.value.kind==="constant"&&p.value.value instanceof Ro)x(p.value.value.sections);else if(p.value.kind==="source"){const I=k=>{b||(k instanceof qa&&er(k.value)===ji?x(k.value.sections):k instanceof th?x(k.sections):k.eachChild(I))},L=p.value;L._styleExpression&&I(L._styleExpression.expression)}return b}}let dv;var fS={get paint(){return dv=dv||new vo({"background-color":new De(Bt.paint_background["background-color"]),"background-pattern":new sc(Bt.paint_background["background-pattern"]),"background-opacity":new De(Bt.paint_background["background-opacity"])})}};class pS extends Is{constructor(o){super(o,fS)}}let mv;var dS={get paint(){return mv=mv||new vo({"raster-opacity":new De(Bt.paint_raster["raster-opacity"]),"raster-hue-rotate":new De(Bt.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new De(Bt.paint_raster["raster-brightness-min"]),"raster-brightness-max":new De(Bt.paint_raster["raster-brightness-max"]),"raster-saturation":new De(Bt.paint_raster["raster-saturation"]),"raster-contrast":new De(Bt.paint_raster["raster-contrast"]),"raster-resampling":new De(Bt.paint_raster["raster-resampling"]),"raster-fade-duration":new De(Bt.paint_raster["raster-fade-duration"])})}};class mS extends Is{constructor(o){super(o,dS)}}class gS extends Is{constructor(o){super(o,{}),this.onAdd=c=>{this.implementation.onAdd&&this.implementation.onAdd(c,c.painter.context.gl)},this.onRemove=c=>{this.implementation.onRemove&&this.implementation.onRemove(c,c.painter.context.gl)},this.implementation=o}is3D(){return this.implementation.renderingMode==="3d"}hasOffscreenPass(){return this.implementation.prerender!==void 0}recalculate(){}updateTransitions(){}hasTransition(){return!1}serialize(){throw new Error("Custom layers cannot be serialized")}}class _S{constructor(o){this._methodToThrottle=o,this._triggered=!1,typeof MessageChannel<"u"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=()=>{this._triggered=!1,this._methodToThrottle()})}trigger(){this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout(()=>{this._triggered=!1,this._methodToThrottle()},0))}remove(){delete this._channel,this._methodToThrottle=()=>{}}}const O_=63710088e-1;class du{constructor(o,c){if(isNaN(o)||isNaN(c))throw new Error(`Invalid LngLat object: (${o}, ${c})`);if(this.lng=+o,this.lat=+c,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")}wrap(){return new du(pt(this.lng,-180,180),this.lat)}toArray(){return[this.lng,this.lat]}toString(){return`LngLat(${this.lng}, ${this.lat})`}distanceTo(o){const c=Math.PI/180,p=this.lat*c,g=o.lat*c,b=Math.sin(p)*Math.sin(g)+Math.cos(p)*Math.cos(g)*Math.cos((o.lng-this.lng)*c);return O_*Math.acos(Math.min(b,1))}static convert(o){if(o instanceof du)return o;if(Array.isArray(o)&&(o.length===2||o.length===3))return new du(Number(o[0]),Number(o[1]));if(!Array.isArray(o)&&typeof o=="object"&&o!==null)return new du(Number("lng"in o?o.lng:o.lon),Number(o.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: , lat: }, an object {lon: , lat: }, or an array of [, ]")}}const gv=2*Math.PI*O_;function _v(l){return gv*Math.cos(l*Math.PI/180)}function yv(l){return(180+l)/360}function vv(l){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+l*Math.PI/360)))/360}function bv(l,o){return l/_v(o)}function z_(l){return 360/Math.PI*Math.atan(Math.exp((180-360*l)*Math.PI/180))-90}class Sm{constructor(o,c,p=0){this.x=+o,this.y=+c,this.z=+p}static fromLngLat(o,c=0){const p=du.convert(o);return new Sm(yv(p.lng),vv(p.lat),bv(c,p.lat))}toLngLat(){return new du(360*this.x-180,z_(this.y))}toAltitude(){return this.z*_v(z_(this.y))}meterInMercatorCoordinateUnits(){return 1/gv*(o=z_(this.y),1/Math.cos(o*Math.PI/180));var o}}function xv(l,o,c){var p=2*Math.PI*6378137/256/Math.pow(2,c);return[l*p-2*Math.PI*6378137/2,o*p-2*Math.PI*6378137/2]}class F_{constructor(o,c,p){if(o<0||o>25||p<0||p>=Math.pow(2,o)||c<0||c>=Math.pow(2,o))throw new Error(`x=${c}, y=${p}, z=${o} outside of bounds. 0<=x<${Math.pow(2,o)}, 0<=y<${Math.pow(2,o)} 0<=z<=25 `);this.z=o,this.x=c,this.y=p,this.key=wp(0,o,o,c,p)}equals(o){return this.z===o.z&&this.x===o.x&&this.y===o.y}url(o,c,p){const g=(x=this.y,I=this.z,L=xv(256*(b=this.x),256*(x=Math.pow(2,I)-x-1),I),k=xv(256*(b+1),256*(x+1),I),L[0]+","+L[1]+","+k[0]+","+k[1]);var b,x,I,L,k;const N=function(z,q,H){let Y,et="";for(let at=z;at>0;at--)Y=1<1?"@2x":"").replace(/{quadkey}/g,N).replace(/{bbox-epsg-3857}/g,g)}isChildOf(o){const c=this.z-o.z;return c>0&&o.x===this.x>>c&&o.y===this.y>>c}getTilePoint(o){const c=Math.pow(2,this.z);return new E((o.x*c-this.x)*Bi,(o.y*c-this.y)*Bi)}toString(){return`${this.z}/${this.x}/${this.y}`}}class wv{constructor(o,c){this.wrap=o,this.canonical=c,this.key=wp(o,c.z,c.z,c.x,c.y)}}class Cs{constructor(o,c,p,g,b){if(o= z; overscaledZ = ${o}; z = ${p}`);this.overscaledZ=o,this.wrap=c,this.canonical=new F_(p,+g,+b),this.key=wp(c,o,p,g,b)}clone(){return new Cs(this.overscaledZ,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)}equals(o){return this.overscaledZ===o.overscaledZ&&this.wrap===o.wrap&&this.canonical.equals(o.canonical)}scaledTo(o){if(o>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${o}; overscaledZ = ${this.overscaledZ}`);const c=this.canonical.z-o;return o>this.canonical.z?new Cs(o,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Cs(o,this.wrap,o,this.canonical.x>>c,this.canonical.y>>c)}calculateScaledKey(o,c){if(o>this.overscaledZ)throw new Error(`targetZ > this.overscaledZ; targetZ = ${o}; overscaledZ = ${this.overscaledZ}`);const p=this.canonical.z-o;return o>this.canonical.z?wp(this.wrap*+c,o,this.canonical.z,this.canonical.x,this.canonical.y):wp(this.wrap*+c,o,o,this.canonical.x>>p,this.canonical.y>>p)}isChildOf(o){if(o.wrap!==this.wrap)return!1;const c=this.canonical.z-o.canonical.z;return o.overscaledZ===0||o.overscaledZ>c&&o.canonical.y===this.canonical.y>>c}children(o){if(this.overscaledZ>=o)return[new Cs(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];const c=this.canonical.z+1,p=2*this.canonical.x,g=2*this.canonical.y;return[new Cs(c,this.wrap,c,p,g),new Cs(c,this.wrap,c,p+1,g),new Cs(c,this.wrap,c,p,g+1),new Cs(c,this.wrap,c,p+1,g+1)]}isLessThan(o){return this.wrapo.wrap)&&(this.overscaledZo.overscaledZ)&&(this.canonical.xo.canonical.x)&&this.canonical.ythis.max&&(this.max=z),z=this.dim+1||c<-1||c>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(c+1)*this.stride+(o+1)}unpack(o,c,p){return o*this.redFactor+c*this.greenFactor+p*this.blueFactor-this.baseShift}getPixels(){return new Es({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))}backfillBorder(o,c,p){if(this.dim!==o.dim)throw new Error("dem dimension mismatch");let g=c*this.dim,b=c*this.dim+this.dim,x=p*this.dim,I=p*this.dim+this.dim;switch(c){case-1:g=b-1;break;case 1:b=g+1}switch(p){case-1:x=I-1;break;case 1:I=x+1}const L=-c*this.dim,k=-p*this.dim;for(let N=x;N=this._numberToString.length)throw new Error(`Out of bounds. Index requested n=${o} can't be >= this._numberToString.length ${this._numberToString.length}`);return this._numberToString[o]}}class Ev{constructor(o,c,p,g,b){this.type="Feature",this._vectorTileFeature=o,o._z=c,o._x=p,o._y=g,this.properties=o.properties,this.id=b}get geometry(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}set geometry(o){this._geometry=o}toJSON(){const o={geometry:this.geometry};for(const c in this)c!=="_geometry"&&c!=="_vectorTileFeature"&&(o[c]=this[c]);return o}}class Cv{constructor(o,c){this.tileID=o,this.x=o.canonical.x,this.y=o.canonical.y,this.z=o.canonical.z,this.grid=new ic(Bi,16,0),this.grid3D=new ic(Bi,16,0),this.featureIndexArray=new B,this.promoteId=c}insert(o,c,p,g,b,x){const I=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(p,g,b);const L=x?this.grid3D:this.grid;for(let k=0;k=0&&z[3]>=0&&L.insert(I,z[0],z[1],z[2],z[3])}}loadVTLayers(){return this.vtLayers||(this.vtLayers=new hu.VectorTile(new C_(this.rawTileData)).layers,this.sourceLayerCoder=new Iv(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers}query(o,c,p,g){this.loadVTLayers();const b=o.params||{},x=Bi/o.tileSize/o.scale,I=sh(b.filter),L=o.queryGeometry,k=o.queryPadding*x,N=Lv(L),z=this.grid.query(N.minX-k,N.minY-k,N.maxX+k,N.maxY+k),q=Lv(o.cameraQueryGeometry),H=this.grid3D.query(q.minX-k,q.minY-k,q.maxX+k,q.maxY+k,(at,gt,Dt,xt)=>function(Lt,Kt,Qt,xe,Me){for(const ye of Lt)if(Kt<=ye.x&&Qt<=ye.y&&xe>=ye.x&&Me>=ye.y)return!0;const be=[new E(Kt,Qt),new E(Kt,Me),new E(xe,Me),new E(xe,Qt)];if(Lt.length>2){for(const ye of be)if(Ch(Lt,ye))return!0}for(let ye=0;ye(xt||(xt=Ll(Lt)),Kt.queryIntersectsFeature(L,Lt,Qt,xt,this.z,o.transform,x,o.pixelPosMatrix)))}return Y}loadMatchingFeature(o,c,p,g,b,x,I,L,k,N,z){const q=this.bucketLayerIDs[c];if(x&&!function(at,gt){for(let Dt=0;Dt=0)return!0;return!1}(x,q))return;const H=this.sourceLayerCoder.decode(p),Y=this.vtLayers[H].feature(g);if(b.needGeometry){const at=Ml(Y,!0);if(!b.filter(new mi(this.tileID.overscaledZ),at,this.tileID.canonical))return}else if(!b.filter(new mi(this.tileID.overscaledZ),Y))return;const et=this.getId(Y,H);for(let at=0;at{const I=o instanceof oc?o.get(x):null;return I&&I.evaluate?I.evaluate(c,p,g):I})}function Lv(l){let o=1/0,c=1/0,p=-1/0,g=-1/0;for(const b of l)o=Math.min(o,b.x),c=Math.min(c,b.y),p=Math.max(p,b.x),g=Math.max(g,b.y);return{minX:o,minY:c,maxX:p,maxY:g}}function yS(l,o){return o-l}function Mv(l,o,c,p,g){const b=[];for(let x=0;x=p&&z.x>=p||(N.x>=p?N=new E(p,N.y+(p-N.x)/(z.x-N.x)*(z.y-N.y))._round():z.x>=p&&(z=new E(p,N.y+(p-N.x)/(z.x-N.x)*(z.y-N.y))._round()),N.y>=g&&z.y>=g||(N.y>=g?N=new E(N.x+(g-N.y)/(z.y-N.y)*(z.x-N.x),g)._round():z.y>=g&&(z=new E(N.x+(g-N.y)/(z.y-N.y)*(z.x-N.x),g)._round()),L&&N.equals(L[L.length-1])||(L=[N],b.push(L)),L.push(z)))))}}return b}Ie("FeatureIndex",Cv,{omit:["rawTileData","sourceLayerCoder"]});class mu extends E{constructor(o,c,p,g){super(o,c),this.angle=p,g!==void 0&&(this.segment=g)}clone(){return new mu(this.x,this.y,this.angle,this.segment)}}function Pv(l,o,c,p,g){if(o.segment===void 0||c===0)return!0;let b=o,x=o.segment+1,I=0;for(;I>-c/2;){if(x--,x<0)return!1;I-=l[x].dist(b),b=l[x]}I+=l[x].dist(l[x+1]),x++;const L=[];let k=0;for(;Ip;)k-=L.shift().angleDelta;if(k>g)return!1;x++,I+=N.dist(z)}return!0}function kv(l){let o=0;for(let c=0;ck){const Y=(k-L)/H,et=ro.number(z.x,q.x,Y),at=ro.number(z.y,q.y,Y),gt=new mu(et,at,q.angleTo(z),N);return gt._round(),!x||Pv(l,gt,I,x,o)?gt:void 0}L+=H}}function bS(l,o,c,p,g,b,x,I,L){const k=Av(p,b,x),N=Dv(p,g),z=N*x,q=l[0].x===0||l[0].x===L||l[0].y===0||l[0].y===L;return o-z=0&&Lt=0&&Kt=0&&q+k<=N){const Qt=new mu(Lt,Kt,Dt,Y);Qt._round(),p&&!Pv(l,Qt,b,p,g)||H.push(Qt)}}z+=gt}return I||H.length||x||(H=Rv(l,z/2,c,p,g,b,x,!0,L)),H}Ie("Anchor",mu);const Rh=Bo;function Nv(l,o,c,p){const g=[],b=l.image,x=b.pixelRatio,I=b.paddedRect.w-2*Rh,L=b.paddedRect.h-2*Rh,k=l.right-l.left,N=l.bottom-l.top,z=b.stretchX||[[0,I]],q=b.stretchY||[[0,L]],H=(he,Ce)=>he+Ce[1]-Ce[0],Y=z.reduce(H,0),et=q.reduce(H,0),at=I-Y,gt=L-et;let Dt=0,xt=Y,Lt=0,Kt=et,Qt=0,xe=at,Me=0,be=gt;if(b.content&&p){const he=b.content;Dt=Im(z,0,he[0]),Lt=Im(q,0,he[1]),xt=Im(z,he[0],he[2]),Kt=Im(q,he[1],he[3]),Qt=he[0]-Dt,Me=he[1]-Lt,xe=he[2]-he[0]-xt,be=he[3]-he[1]-Kt}const ye=(he,Ce,ge,oe)=>{const Ve=Em(he.stretch-Dt,xt,k,l.left),Ae=Cm(he.fixed-Qt,xe,he.stretch,Y),vn=Em(Ce.stretch-Lt,Kt,N,l.top),ci=Cm(Ce.fixed-Me,be,Ce.stretch,et),_i=Em(ge.stretch-Dt,xt,k,l.left),mr=Cm(ge.fixed-Qt,xe,ge.stretch,Y),ls=Em(oe.stretch-Lt,Kt,N,l.top),xo=Cm(oe.fixed-Me,be,oe.stretch,et),or=new E(Ve,vn),Rr=new E(_i,vn),qr=new E(_i,ls),wo=new E(Ve,ls),So=new E(Ae/x,ci/x),gr=new E(mr/x,xo/x),_r=o*Math.PI/180;if(_r){const ao=Math.sin(_r),Vo=Math.cos(_r),Uo=[Vo,-ao,ao,Vo];or._matMult(Uo),Rr._matMult(Uo),wo._matMult(Uo),qr._matMult(Uo)}const so=he.stretch+he.fixed,Io=Ce.stretch+Ce.fixed;return{tl:or,tr:Rr,bl:wo,br:qr,tex:{x:b.paddedRect.x+Rh+so,y:b.paddedRect.y+Rh+Io,w:ge.stretch+ge.fixed-so,h:oe.stretch+oe.fixed-Io},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:So,pixelOffsetBR:gr,minFontScaleX:xe/x/k,minFontScaleY:be/x/N,isSDF:c}};if(p&&(b.stretchX||b.stretchY)){const he=Ov(z,at,Y),Ce=Ov(q,gt,et);for(let ge=0;ge0&&(Y=Math.max(10,Y),this.circleDiameter=Y)}else{let z=x.top*I-L[0],q=x.bottom*I+L[2],H=x.left*I-L[3],Y=x.right*I+L[1];const et=x.collisionPadding;if(et&&(H-=et[0]*I,z-=et[1]*I,Y+=et[2]*I,q+=et[3]*I),N){const at=new E(H,z),gt=new E(Y,z),Dt=new E(H,q),xt=new E(Y,q),Lt=N*Math.PI/180;at._rotate(Lt),gt._rotate(Lt),Dt._rotate(Lt),xt._rotate(Lt),H=Math.min(at.x,gt.x,Dt.x,xt.x),Y=Math.max(at.x,gt.x,Dt.x,xt.x),z=Math.min(at.y,gt.y,Dt.y,xt.y),q=Math.max(at.y,gt.y,Dt.y,xt.y)}o.emplaceBack(c.x,c.y,H,z,Y,q,p,g,b)}this.boxEndIndex=o.length}}class xS{constructor(o=[],c=wS){if(this.data=o,this.length=this.data.length,this.compare=c,this.length>0)for(let p=(this.length>>1)-1;p>=0;p--)this._down(p)}push(o){this.data.push(o),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const o=this.data[0],c=this.data.pop();return this.length--,this.length>0&&(this.data[0]=c,this._down(0)),o}peek(){return this.data[0]}_up(o){const{data:c,compare:p}=this,g=c[o];for(;o>0;){const b=o-1>>1,x=c[b];if(p(g,x)>=0)break;c[o]=x,o=b}c[o]=g}_down(o){const{data:c,compare:p}=this,g=this.length>>1,b=c[o];for(;o=0)break;c[o]=I,o=x}c[o]=b}}function wS(l,o){return lo?1:0}function SS(l,o=1,c=!1){let p=1/0,g=1/0,b=-1/0,x=-1/0;const I=l[0];for(let H=0;Hb)&&(b=Y.x),(!H||Y.y>x)&&(x=Y.y)}const L=Math.min(b-p,x-g);let k=L/2;const N=new xS([],IS);if(L===0)return new E(p,g);for(let H=p;Hz.d||!z.d)&&(z=H,c&&console.log("found best %d after %d probes",Math.round(1e4*H.d)/1e4,q)),H.max-z.d<=o||(k=H.h/2,N.push(new Nh(H.p.x-k,H.p.y-k,k,l)),N.push(new Nh(H.p.x+k,H.p.y-k,k,l)),N.push(new Nh(H.p.x-k,H.p.y+k,k,l)),N.push(new Nh(H.p.x+k,H.p.y+k,k,l)),q+=4)}return c&&(console.log(`num probes: ${q}`),console.log(`best distance: ${z.d}`)),z.p}function IS(l,o){return o.max-l.max}function Nh(l,o,c,p){this.p=new E(l,o),this.h=c,this.d=function(g,b){let x=!1,I=1/0;for(let L=0;Lg.y!=Y.y>g.y&&g.x<(Y.x-H.x)*(g.y-H.y)/(Y.y-H.y)+H.x&&(x=!x),I=Math.min(I,v0(g,H,Y))}}return(x?1:-1)*Math.sqrt(I)}(this.p,p),this.max=this.d+this.h*Math.SQRT2}var jr;h.ap=void 0,(jr=h.ap||(h.ap={}))[jr.center=1]="center",jr[jr.left=2]="left",jr[jr.right=3]="right",jr[jr.top=4]="top",jr[jr.bottom=5]="bottom",jr[jr["top-left"]=6]="top-left",jr[jr["top-right"]=7]="top-right",jr[jr["bottom-left"]=8]="bottom-left",jr[jr["bottom-right"]=9]="bottom-right";const gu=7,B_=Number.POSITIVE_INFINITY;function zv(l,o){return o[1]!==B_?function(c,p,g){let b=0,x=0;switch(p=Math.abs(p),g=Math.abs(g),c){case"top-right":case"top-left":case"top":x=g-gu;break;case"bottom-right":case"bottom-left":case"bottom":x=-g+gu}switch(c){case"top-right":case"bottom-right":case"right":b=-p;break;case"top-left":case"bottom-left":case"left":b=p}return[b,x]}(l,o[0],o[1]):function(c,p){let g=0,b=0;p<0&&(p=0);const x=p/Math.SQRT2;switch(c){case"top-right":case"top-left":b=x-gu;break;case"bottom-right":case"bottom-left":b=-x+gu;break;case"bottom":b=-p+gu;break;case"top":b=p-gu}switch(c){case"top-right":case"bottom-right":g=-x;break;case"top-left":case"bottom-left":g=x;break;case"left":g=p;break;case"right":g=-p}return[g,b]}(l,o[0])}function Fv(l,o,c){var p;const g=l.layout,b=(p=g.get("text-variable-anchor-offset"))===null||p===void 0?void 0:p.evaluate(o,{},c);if(b){const I=b.values,L=[];for(let k=0;kq*dr);N.startsWith("top")?z[1]-=gu:N.startsWith("bottom")&&(z[1]+=gu),L[k+1]=z}return new rs(L)}const x=g.get("text-variable-anchor");if(x){let I;I=l._unevaluatedLayout.getValue("text-radial-offset")!==void 0?[g.get("text-radial-offset").evaluate(o,{},c)*dr,B_]:g.get("text-offset").evaluate(o,{},c).map(k=>k*dr);const L=[];for(const k of x)L.push(k,zv(k,I));return new rs(L)}return null}function V_(l){switch(l){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function ES(l,o,c,p,g,b,x,I,L,k,N){let z=b.textMaxSize.evaluate(o,{});z===void 0&&(z=x);const q=l.layers[0].layout,H=q.get("icon-offset").evaluate(o,{},N),Y=Vv(c.horizontal),et=x/24,at=l.tilePixelRatio*et,gt=l.tilePixelRatio*z/24,Dt=l.tilePixelRatio*I,xt=l.tilePixelRatio*q.get("symbol-spacing"),Lt=q.get("text-padding")*l.tilePixelRatio,Kt=function(oe,Ve,Ae,vn=1){const ci=oe.get("icon-padding").evaluate(Ve,{},Ae),_i=ci&&ci.values;return[_i[0]*vn,_i[1]*vn,_i[2]*vn,_i[3]*vn]}(q,o,N,l.tilePixelRatio),Qt=q.get("text-max-angle")/180*Math.PI,xe=q.get("text-rotation-alignment")!=="viewport"&&q.get("symbol-placement")!=="point",Me=q.get("icon-rotation-alignment")==="map"&&q.get("symbol-placement")!=="point",be=q.get("symbol-placement"),ye=xt/2,he=q.get("icon-text-fit");let Ce;p&&he!=="none"&&(l.allowVerticalPlacement&&c.vertical&&(Ce=uv(p,c.vertical,he,q.get("icon-text-fit-padding"),H,et)),Y&&(p=uv(p,Y,he,q.get("icon-text-fit-padding"),H,et)));const ge=(oe,Ve)=>{Ve.x<0||Ve.x>=Bi||Ve.y<0||Ve.y>=Bi||function(Ae,vn,ci,_i,mr,ls,xo,or,Rr,qr,wo,So,gr,_r,so,Io,ao,Vo,Uo,yr,In,lo,Zr,vr,Ys){const Sa=Ae.addToLineVertexArray(vn,ci);let Ia,kl,Ks,Ts,Go=0,Al=0,Ep=0,qv=0,X_=-1,$_=-1;const Dl={};let Zv=Di("");if(Ae.allowVerticalPlacement&&_i.vertical){const uo=or.layout.get("text-rotate").evaluate(In,{},vr)+90;Ks=new Tm(Rr,vn,qr,wo,So,_i.vertical,gr,_r,so,uo),xo&&(Ts=new Tm(Rr,vn,qr,wo,So,xo,ao,Vo,so,uo))}if(mr){const uo=or.layout.get("icon-rotate").evaluate(In,{}),Ls=or.layout.get("icon-text-fit")!=="none",dc=Nv(mr,uo,Zr,Ls),Ca=xo?Nv(xo,uo,Zr,Ls):void 0;kl=new Tm(Rr,vn,qr,wo,So,mr,ao,Vo,!1,uo),Go=4*dc.length;const mc=Ae.iconSizeData;let tl=null;mc.kind==="source"?(tl=[Qa*or.layout.get("icon-size").evaluate(In,{})],tl[0]>pu&&te(`${Ae.layerIds[0]}: Value for "icon-size" is >= ${xp}. Reduce your "icon-size".`)):mc.kind==="composite"&&(tl=[Qa*lo.compositeIconSizes[0].evaluate(In,{},vr),Qa*lo.compositeIconSizes[1].evaluate(In,{},vr)],(tl[0]>pu||tl[1]>pu)&&te(`${Ae.layerIds[0]}: Value for "icon-size" is >= ${xp}. Reduce your "icon-size".`)),Ae.addSymbols(Ae.icon,dc,tl,yr,Uo,In,h.ah.none,vn,Sa.lineStartIndex,Sa.lineLength,-1,vr),X_=Ae.icon.placedSymbolArray.length-1,Ca&&(Al=4*Ca.length,Ae.addSymbols(Ae.icon,Ca,tl,yr,Uo,In,h.ah.vertical,vn,Sa.lineStartIndex,Sa.lineLength,-1,vr),$_=Ae.icon.placedSymbolArray.length-1)}const Wv=Object.keys(_i.horizontal);for(const uo of Wv){const Ls=_i.horizontal[uo];if(!Ia){Zv=Di(Ls.text);const Ca=or.layout.get("text-rotate").evaluate(In,{},vr);Ia=new Tm(Rr,vn,qr,wo,So,Ls,gr,_r,so,Ca)}const dc=Ls.positionedLines.length===1;if(Ep+=Bv(Ae,vn,Ls,ls,or,so,In,Io,Sa,_i.vertical?h.ah.horizontal:h.ah.horizontalOnly,dc?Wv:[uo],Dl,X_,lo,vr),dc)break}_i.vertical&&(qv+=Bv(Ae,vn,_i.vertical,ls,or,so,In,Io,Sa,h.ah.vertical,["vertical"],Dl,$_,lo,vr));const LS=Ia?Ia.boxStartIndex:Ae.collisionBoxArray.length,MS=Ia?Ia.boxEndIndex:Ae.collisionBoxArray.length,PS=Ks?Ks.boxStartIndex:Ae.collisionBoxArray.length,kS=Ks?Ks.boxEndIndex:Ae.collisionBoxArray.length,AS=kl?kl.boxStartIndex:Ae.collisionBoxArray.length,DS=kl?kl.boxEndIndex:Ae.collisionBoxArray.length,RS=Ts?Ts.boxStartIndex:Ae.collisionBoxArray.length,NS=Ts?Ts.boxEndIndex:Ae.collisionBoxArray.length;let Ea=-1;const Mm=(uo,Ls)=>uo&&uo.circleDiameter?Math.max(uo.circleDiameter,Ls):Ls;Ea=Mm(Ia,Ea),Ea=Mm(Ks,Ea),Ea=Mm(kl,Ea),Ea=Mm(Ts,Ea);const Hv=Ea>-1?1:0;Hv&&(Ea*=Ys/dr),Ae.glyphOffsetArray.length>=Dh.MAX_GLYPHS&&te("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),In.sortKey!==void 0&&Ae.addToSortKeyRanges(Ae.symbolInstances.length,In.sortKey);const OS=Fv(or,In,vr),[zS,FS]=function(uo,Ls){const dc=uo.length,Ca=Ls==null?void 0:Ls.values;if((Ca==null?void 0:Ca.length)>0)for(let mc=0;mc=0?Dl.right:-1,Dl.center>=0?Dl.center:-1,Dl.left>=0?Dl.left:-1,Dl.vertical||-1,X_,$_,Zv,LS,MS,PS,kS,AS,DS,RS,NS,qr,Ep,qv,Go,Al,Hv,0,gr,Ea,zS,FS)}(l,Ve,oe,c,p,g,Ce,l.layers[0],l.collisionBoxArray,o.index,o.sourceLayerIndex,l.index,at,[Lt,Lt,Lt,Lt],xe,L,Dt,Kt,Me,H,o,b,k,N,x)};if(be==="line")for(const oe of Mv(o.geometry,0,0,Bi,Bi)){const Ve=bS(oe,xt,Qt,c.vertical||Y,p,24,gt,l.overscaling,Bi);for(const Ae of Ve)Y&&CS(l,Y.text,ye,Ae)||ge(oe,Ae)}else if(be==="line-center"){for(const oe of o.geometry)if(oe.length>1){const Ve=vS(oe,Qt,c.vertical||Y,p,24,gt);Ve&&ge(oe,Ve)}}else if(o.type==="Polygon")for(const oe of y_(o.geometry,0)){const Ve=SS(oe,16);ge(oe[0],new mu(Ve.x,Ve.y,0))}else if(o.type==="LineString")for(const oe of o.geometry)ge(oe,new mu(oe[0].x,oe[0].y,0));else if(o.type==="Point")for(const oe of o.geometry)for(const Ve of oe)ge([Ve],new mu(Ve.x,Ve.y,0))}function Bv(l,o,c,p,g,b,x,I,L,k,N,z,q,H,Y){const et=function(Dt,xt,Lt,Kt,Qt,xe,Me,be){const ye=Kt.layout.get("text-rotate").evaluate(xe,{})*Math.PI/180,he=[];for(const Ce of xt.positionedLines)for(const ge of Ce.positionedGlyphs){if(!ge.rect)continue;const oe=ge.rect||{};let Ve=nv+1,Ae=!0,vn=1,ci=0;const _i=(Qt||be)&&ge.vertical,mr=ge.metrics.advance*ge.scale/2;if(be&&xt.verticalizable&&(ci=Ce.lineOffset/2-(ge.imageName?-(dr-ge.metrics.width*ge.scale)/2:(ge.scale-1)*dr)),ge.imageName){const yr=Me[ge.imageName];Ae=yr.sdf,vn=yr.pixelRatio,Ve=Bo/vn}const ls=Qt?[ge.x+mr,ge.y]:[0,0];let xo=Qt?[0,0]:[ge.x+mr+Lt[0],ge.y+Lt[1]-ci],or=[0,0];_i&&(or=xo,xo=[0,0]);const Rr=ge.metrics.isDoubleResolution?2:1,qr=(ge.metrics.left-Ve)*ge.scale-mr+xo[0],wo=(-ge.metrics.top-Ve)*ge.scale+xo[1],So=qr+oe.w/Rr*ge.scale/vn,gr=wo+oe.h/Rr*ge.scale/vn,_r=new E(qr,wo),so=new E(So,wo),Io=new E(qr,gr),ao=new E(So,gr);if(_i){const yr=new E(-mr,mr-vp),In=-Math.PI/2,lo=dr/2-mr,Zr=new E(5-vp-lo,-(ge.imageName?lo:0)),vr=new E(...or);_r._rotateAround(In,yr)._add(Zr)._add(vr),so._rotateAround(In,yr)._add(Zr)._add(vr),Io._rotateAround(In,yr)._add(Zr)._add(vr),ao._rotateAround(In,yr)._add(Zr)._add(vr)}if(ye){const yr=Math.sin(ye),In=Math.cos(ye),lo=[In,-yr,yr,In];_r._matMult(lo),so._matMult(lo),Io._matMult(lo),ao._matMult(lo)}const Vo=new E(0,0),Uo=new E(0,0);he.push({tl:_r,tr:so,bl:Io,br:ao,tex:oe,writingMode:xt.writingMode,glyphOffset:ls,sectionIndex:ge.sectionIndex,isSDF:Ae,pixelOffsetTL:Vo,pixelOffsetBR:Uo,minFontScaleX:0,minFontScaleY:0})}return he}(0,c,I,g,b,x,p,l.allowVerticalPlacement),at=l.textSizeData;let gt=null;at.kind==="source"?(gt=[Qa*g.layout.get("text-size").evaluate(x,{})],gt[0]>pu&&te(`${l.layerIds[0]}: Value for "text-size" is >= ${xp}. Reduce your "text-size".`)):at.kind==="composite"&&(gt=[Qa*H.compositeTextSizes[0].evaluate(x,{},Y),Qa*H.compositeTextSizes[1].evaluate(x,{},Y)],(gt[0]>pu||gt[1]>pu)&&te(`${l.layerIds[0]}: Value for "text-size" is >= ${xp}. Reduce your "text-size".`)),l.addSymbols(l.text,et,gt,I,b,x,k,o,L.lineStartIndex,L.lineLength,q,Y);for(const Dt of N)z[Dt]=l.text.placedSymbolArray.length-1;return 4*et.length}function Vv(l){for(const o in l)return l[o];return null}function CS(l,o,c,p){const g=l.compareText;if(o in g){const b=g[o];for(let x=b.length-1;x>=0;x--)if(p.dist(b[x])>4;if(g!==1)throw new Error(`Got v${g} data when expected v1.`);const b=Uv[15&p];if(!b)throw new Error("Unrecognized array type.");const[x]=new Uint16Array(o,2,1),[I]=new Uint32Array(o,4,1);return new U_(I,x,b,o)}constructor(o,c=64,p=Float64Array,g){if(isNaN(o)||o<0)throw new Error(`Unpexpected numItems value: ${o}.`);this.numItems=+o,this.nodeSize=Math.min(Math.max(+c,2),65535),this.ArrayType=p,this.IndexArrayType=o<65536?Uint16Array:Uint32Array;const b=Uv.indexOf(this.ArrayType),x=2*o*this.ArrayType.BYTES_PER_ELEMENT,I=o*this.IndexArrayType.BYTES_PER_ELEMENT,L=(8-I%8)%8;if(b<0)throw new Error(`Unexpected typed array class: ${p}.`);g&&g instanceof ArrayBuffer?(this.data=g,this.ids=new this.IndexArrayType(this.data,8,o),this.coords=new this.ArrayType(this.data,8+I+L,2*o),this._pos=2*o,this._finished=!0):(this.data=new ArrayBuffer(8+x+I+L),this.ids=new this.IndexArrayType(this.data,8,o),this.coords=new this.ArrayType(this.data,8+I+L,2*o),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,16+b]),new Uint16Array(this.data,2,1)[0]=c,new Uint32Array(this.data,4,1)[0]=o)}add(o,c){const p=this._pos>>1;return this.ids[p]=p,this.coords[this._pos++]=o,this.coords[this._pos++]=c,p}finish(){const o=this._pos>>1;if(o!==this.numItems)throw new Error(`Added ${o} items when expected ${this.numItems}.`);return G_(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(o,c,p,g){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:b,coords:x,nodeSize:I}=this,L=[0,b.length-1,0],k=[];for(;L.length;){const N=L.pop()||0,z=L.pop()||0,q=L.pop()||0;if(z-q<=I){for(let at=q;at<=z;at++){const gt=x[2*at],Dt=x[2*at+1];gt>=o&><=p&&Dt>=c&&Dt<=g&&k.push(b[at])}continue}const H=q+z>>1,Y=x[2*H],et=x[2*H+1];Y>=o&&Y<=p&&et>=c&&et<=g&&k.push(b[H]),(N===0?o<=Y:c<=et)&&(L.push(q),L.push(H-1),L.push(1-N)),(N===0?p>=Y:g>=et)&&(L.push(H+1),L.push(z),L.push(1-N))}return k}within(o,c,p){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");const{ids:g,coords:b,nodeSize:x}=this,I=[0,g.length-1,0],L=[],k=p*p;for(;I.length;){const N=I.pop()||0,z=I.pop()||0,q=I.pop()||0;if(z-q<=x){for(let at=q;at<=z;at++)jv(b[2*at],b[2*at+1],o,c)<=k&&L.push(g[at]);continue}const H=q+z>>1,Y=b[2*H],et=b[2*H+1];jv(Y,et,o,c)<=k&&L.push(g[H]),(N===0?o-p<=Y:c-p<=et)&&(I.push(q),I.push(H-1),I.push(1-N)),(N===0?o+p>=Y:c+p>=et)&&(I.push(H+1),I.push(z),I.push(1-N))}return L}}function G_(l,o,c,p,g,b){if(g-p<=c)return;const x=p+g>>1;Gv(l,o,x,p,g,b),G_(l,o,c,p,x-1,1-b),G_(l,o,c,x+1,g,1-b)}function Gv(l,o,c,p,g,b){for(;g>p;){if(g-p>600){const k=g-p+1,N=c-p+1,z=Math.log(k),q=.5*Math.exp(2*z/3),H=.5*Math.sqrt(z*q*(k-q)/k)*(N-k/2<0?-1:1);Gv(l,o,c,Math.max(p,Math.floor(c-N*q/k+H)),Math.min(g,Math.floor(c+(k-N)*q/k+H)),b)}const x=o[2*c+b];let I=p,L=g;for(Sp(l,o,p,c),o[2*g+b]>x&&Sp(l,o,p,g);Ix;)L--}o[2*p+b]===x?Sp(l,o,p,L):(L++,Sp(l,o,L,g)),L<=c&&(p=L+1),c<=L&&(g=L-1)}}function Sp(l,o,c,p){j_(l,c,p),j_(o,2*c,2*p),j_(o,2*c+1,2*p+1)}function j_(l,o,c){const p=l[o];l[o]=l[c],l[c]=p}function jv(l,o,c,p){const g=l-c,b=o-p;return g*g+b*b}var q_;h.bd=void 0,(q_=h.bd||(h.bd={})).create="create",q_.load="load",q_.fullLoad="fullLoad";let Lm=null,Ip=[];const Z_=1e3/60,W_="loadTime",H_="fullLoadTime",TS={mark(l){performance.mark(l)},frame(l){const o=l;Lm!=null&&Ip.push(o-Lm),Lm=o},clearMetrics(){Lm=null,Ip=[],performance.clearMeasures(W_),performance.clearMeasures(H_);for(const l in h.bd)performance.clearMarks(h.bd[l])},getPerformanceMetrics(){performance.measure(W_,h.bd.create,h.bd.load),performance.measure(H_,h.bd.create,h.bd.fullLoad);const l=performance.getEntriesByName(W_)[0].duration,o=performance.getEntriesByName(H_)[0].duration,c=Ip.length,p=1/(Ip.reduce((b,x)=>b+x,0)/c/1e3),g=Ip.filter(b=>b>Z_).reduce((b,x)=>b+(x-Z_)/Z_,0);return{loadTime:l,fullLoadTime:o,fps:p,percentDroppedFrames:g/(c+g)*100,totalFrames:c}}};h.$=pe,h.A=Th,h.B=function(l){if(re==null){const o=l.navigator?l.navigator.userAgent:null;re=!!l.safari||!(!o||!(/\b(iPad|iPhone|iPod)\b/.test(o)||o.match("Safari")&&!o.match("Chrome")))}return re},h.C=class{constructor(l,o){this.target=l,this.mapId=o,this.resolveRejects={},this.tasks={},this.taskQueue=[],this.abortControllers={},this.messageHandlers={},this.invoker=new _S(()=>this.process()),this.subscription=function(c,p,g,b){return c.addEventListener(p,g,!1),{unsubscribe:()=>{c.removeEventListener(p,g,!1)}}}(this.target,"message",c=>this.receive(c)),this.globalScope=Jt(self)?l:window}registerMessageHandler(l,o){this.messageHandlers[l]=o}sendAsync(l,o){return new Promise((c,p)=>{const g=Math.round(1e18*Math.random()).toString(36).substring(0,10);this.resolveRejects[g]={resolve:c,reject:p},o&&o.signal.addEventListener("abort",()=>{delete this.resolveRejects[g];const I={id:g,type:"",origin:location.origin,targetMapId:l.targetMapId,sourceMapId:this.mapId};this.target.postMessage(I)},{once:!0});const b=[],x=Object.assign(Object.assign({},l),{id:g,sourceMapId:this.mapId,origin:location.origin,data:au(l.data,b)});this.target.postMessage(x,{transfer:b})})}receive(l){const o=l.data,c=o.id;if(!(o.origin!=="file://"&&location.origin!=="file://"&&o.origin!==location.origin||o.targetMapId&&this.mapId!==o.targetMapId)){if(o.type===""){delete this.tasks[c];const p=this.abortControllers[c];return delete this.abortControllers[c],void(p&&p.abort())}if(Jt(self)||o.mustQueue)return this.tasks[c]=o,this.taskQueue.push(c),void this.invoker.trigger();this.processTask(c,o)}}process(){if(this.taskQueue.length===0)return;const l=this.taskQueue.shift(),o=this.tasks[l];delete this.tasks[l],this.taskQueue.length>0&&this.invoker.trigger(),o&&this.processTask(l,o)}processTask(l,o){return u(this,void 0,void 0,function*(){if(o.type===""){const g=this.resolveRejects[l];return delete this.resolveRejects[l],g?void(o.error?g.reject(lu(o.error)):g.resolve(lu(o.data))):void 0}if(!this.messageHandlers[o.type])return void this.completeTask(l,new Error(`Could not find a registered handler for ${o.type}, map ID: ${this.mapId}, available handlers: ${Object.keys(this.messageHandlers).join(", ")}`));const c=lu(o.data),p=new AbortController;this.abortControllers[l]=p;try{const g=yield this.messageHandlers[o.type](o.sourceMapId,c,p);this.completeTask(l,null,g)}catch(g){this.completeTask(l,g)}})}completeTask(l,o,c){const p=[];delete this.abortControllers[l];const g={id:l,type:"",sourceMapId:this.mapId,origin:location.origin,error:o?au(o):null,data:au(c,p)};this.target.postMessage(g,{transfer:p})}remove(){this.invoker.remove(),this.subscription.unsubscribe()}},h.D=De,h.E=bi,h.F=function(){var l=new Th(16);return Th!=Float32Array&&(l[1]=0,l[2]=0,l[3]=0,l[4]=0,l[6]=0,l[7]=0,l[8]=0,l[9]=0,l[11]=0,l[12]=0,l[13]=0,l[14]=0),l[0]=1,l[5]=1,l[10]=1,l[15]=1,l},h.G=ri,h.H=function(l,o,c){var p,g,b,x,I,L,k,N,z,q,H,Y,et=c[0],at=c[1],gt=c[2];return o===l?(l[12]=o[0]*et+o[4]*at+o[8]*gt+o[12],l[13]=o[1]*et+o[5]*at+o[9]*gt+o[13],l[14]=o[2]*et+o[6]*at+o[10]*gt+o[14],l[15]=o[3]*et+o[7]*at+o[11]*gt+o[15]):(g=o[1],b=o[2],x=o[3],I=o[4],L=o[5],k=o[6],N=o[7],z=o[8],q=o[9],H=o[10],Y=o[11],l[0]=p=o[0],l[1]=g,l[2]=b,l[3]=x,l[4]=I,l[5]=L,l[6]=k,l[7]=N,l[8]=z,l[9]=q,l[10]=H,l[11]=Y,l[12]=p*et+I*at+z*gt+o[12],l[13]=g*et+L*at+q*gt+o[13],l[14]=b*et+k*at+H*gt+o[14],l[15]=x*et+N*at+Y*gt+o[15]),l},h.I=L_,h.J=function(l,o,c){var p=c[0],g=c[1],b=c[2];return l[0]=o[0]*p,l[1]=o[1]*p,l[2]=o[2]*p,l[3]=o[3]*p,l[4]=o[4]*g,l[5]=o[5]*g,l[6]=o[6]*g,l[7]=o[7]*g,l[8]=o[8]*b,l[9]=o[9]*b,l[10]=o[10]*b,l[11]=o[11]*b,l[12]=o[12],l[13]=o[13],l[14]=o[14],l[15]=o[15],l},h.K=S0,h.L=function(l,o){const c={};for(let p=0;p{const o=window.document.createElement("video");return o.muted=!0,new Promise(c=>{o.onloadstart=()=>{c(o)};for(const p of l){const g=window.document.createElement("source");Je(p)||(o.crossOrigin="Anonymous"),g.src=p,o.appendChild(g)}})},h.a3=function(){return St++},h.a4=y,h.a5=Dh,h.a6=sh,h.a7=Ml,h.a8=mi,h.a9=Ev,h.aA=mt,h.aB=function(l,o){if(!l)return[{command:"setStyle",args:[o]}];let c=[];try{if(!gn(l.version,o.version))return[{command:"setStyle",args:[o]}];gn(l.center,o.center)||c.push({command:"setCenter",args:[o.center]}),gn(l.zoom,o.zoom)||c.push({command:"setZoom",args:[o.zoom]}),gn(l.bearing,o.bearing)||c.push({command:"setBearing",args:[o.bearing]}),gn(l.pitch,o.pitch)||c.push({command:"setPitch",args:[o.pitch]}),gn(l.sprite,o.sprite)||c.push({command:"setSprite",args:[o.sprite]}),gn(l.glyphs,o.glyphs)||c.push({command:"setGlyphs",args:[o.glyphs]}),gn(l.transition,o.transition)||c.push({command:"setTransition",args:[o.transition]}),gn(l.light,o.light)||c.push({command:"setLight",args:[o.light]}),gn(l.terrain,o.terrain)||c.push({command:"setTerrain",args:[o.terrain]}),gn(l.sky,o.sky)||c.push({command:"setSky",args:[o.sky]});const p={},g=[];(function(x,I,L,k){let N;for(N in I=I||{},x=x||{})Object.prototype.hasOwnProperty.call(x,N)&&(Object.prototype.hasOwnProperty.call(I,N)||vs(N,L,k));for(N in I)Object.prototype.hasOwnProperty.call(I,N)&&(Object.prototype.hasOwnProperty.call(x,N)?gn(x[N],I[N])||(x[N].type==="geojson"&&I[N].type==="geojson"&&ja(x,I,N)?si(L,{command:"setGeoJSONSourceData",args:[N,I[N].data]}):Gs(N,I,L,k)):Do(N,I,L))})(l.sources,o.sources,g,p);const b=[];l.layers&&l.layers.forEach(x=>{"source"in x&&p[x.source]?c.push({command:"removeLayer",args:[x.id]}):b.push(x)}),c=c.concat(g),function(x,I,L){I=I||[];const k=(x=x||[]).map(yl),N=I.map(yl),z=x.reduce(bs,{}),q=I.reduce(bs,{}),H=k.slice(),Y=Object.create(null);let et,at,gt,Dt,xt;for(let Lt=0,Kt=0;Lt@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(c,p,g,b)=>{const x=g||b;return o[p]=!x||x.toLowerCase(),""}),o["max-age"]){const c=parseInt(o["max-age"],10);isNaN(c)?delete o["max-age"]:o["max-age"]=c}return o},h.ab=function(l,o){const c=[];for(const p in l)p in o||c.push(p);return c},h.ac=Q,h.ad=function(l,o,c){var p=Math.sin(c),g=Math.cos(c),b=o[0],x=o[1],I=o[2],L=o[3],k=o[4],N=o[5],z=o[6],q=o[7];return o!==l&&(l[8]=o[8],l[9]=o[9],l[10]=o[10],l[11]=o[11],l[12]=o[12],l[13]=o[13],l[14]=o[14],l[15]=o[15]),l[0]=b*g+k*p,l[1]=x*g+N*p,l[2]=I*g+z*p,l[3]=L*g+q*p,l[4]=k*g-b*p,l[5]=N*g-x*p,l[6]=z*g-I*p,l[7]=q*g-L*p,l},h.ae=function(l){var o=new Th(16);return o[0]=l[0],o[1]=l[1],o[2]=l[2],o[3]=l[3],o[4]=l[4],o[5]=l[5],o[6]=l[6],o[7]=l[7],o[8]=l[8],o[9]=l[9],o[10]=l[10],o[11]=l[11],o[12]=l[12],o[13]=l[13],o[14]=l[14],o[15]=l[15],o},h.af=fm,h.ag=function(l,o){let c=0,p=0;if(l.kind==="constant")p=l.layoutSize;else if(l.kind!=="source"){const{interpolationType:g,minZoom:b,maxZoom:x}=l,I=g?Q(Gr.interpolationFactor(g,o,b,x),0,1):0;l.kind==="camera"?p=ro.number(l.minSize,l.maxSize,I):c=I}return{uSizeT:c,uSize:p}},h.ai=function(l,{uSize:o,uSizeT:c},{lowerSize:p,upperSize:g}){return l.kind==="source"?p/Qa:l.kind==="composite"?ro.number(p/Qa,g/Qa,c):o},h.aj=A_,h.ak=function(l,o,c,p){const g=o.y-l.y,b=o.x-l.x,x=p.y-c.y,I=p.x-c.x,L=x*b-I*g;if(L===0)return null;const k=(I*(l.y-c.y)-x*(l.x-c.x))/L;return new E(l.x+k*b,l.y+k*g)},h.al=Mv,h.am=op,h.an=h_,h.ao=dr,h.aq=k_,h.ar=function(l,o){var c=o[0],p=o[1],g=o[2],b=o[3],x=o[4],I=o[5],L=o[6],k=o[7],N=o[8],z=o[9],q=o[10],H=o[11],Y=o[12],et=o[13],at=o[14],gt=o[15],Dt=c*I-p*x,xt=c*L-g*x,Lt=c*k-b*x,Kt=p*L-g*I,Qt=p*k-b*I,xe=g*k-b*L,Me=N*et-z*Y,be=N*at-q*Y,ye=N*gt-H*Y,he=z*at-q*et,Ce=z*gt-H*et,ge=q*gt-H*at,oe=Dt*ge-xt*Ce+Lt*he+Kt*ye-Qt*be+xe*Me;return oe?(l[0]=(I*ge-L*Ce+k*he)*(oe=1/oe),l[1]=(g*Ce-p*ge-b*he)*oe,l[2]=(et*xe-at*Qt+gt*Kt)*oe,l[3]=(q*Qt-z*xe-H*Kt)*oe,l[4]=(L*ye-x*ge-k*be)*oe,l[5]=(c*ge-g*ye+b*be)*oe,l[6]=(at*Lt-Y*xe-gt*xt)*oe,l[7]=(N*xe-q*Lt+H*xt)*oe,l[8]=(x*Ce-I*ye+k*Me)*oe,l[9]=(p*ye-c*Ce-b*Me)*oe,l[10]=(Y*Qt-et*Lt+gt*Dt)*oe,l[11]=(z*Lt-N*Qt-H*Dt)*oe,l[12]=(I*be-x*he-L*Me)*oe,l[13]=(c*he-p*be+g*Me)*oe,l[14]=(et*xt-Y*Kt-at*Dt)*oe,l[15]=(N*Kt-z*xt+q*Dt)*oe,l):null},h.as=V_,h.at=P_,h.au=U_,h.av=function(){const l={},o=Bt.$version;for(const c in Bt.$root){const p=Bt.$root[c];if(p.required){let g=null;g=c==="version"?o:p.type==="array"?[]:{},g!=null&&(l[c]=g)}}return l},h.aw=Jd,h.ax=$n,h.ay=function(l){l=l.slice();const o=Object.create(null);for(let c=0;coe*dr)}let be=x?"center":c.get("text-justify").evaluate(k,{},l.canonical);const ye=c.get("symbol-placement"),he=ye==="point"?c.get("text-max-width").evaluate(k,{},l.canonical)*dr:0,Ce=()=>{l.bucket.allowVerticalPlacement&&uu(Lt)&&(Y.vertical=vm(et,l.glyphMap,l.glyphPositions,l.imagePositions,N,he,b,xe,"left",Qt,gt,h.ah.vertical,!0,ye,q,z))};if(!x&&Me){const ge=new Set;if(be==="auto")for(let Ve=0;Veu(void 0,void 0,void 0,function*(){if(l.byteLength===0)return createImageBitmap(new ImageData(1,1));const o=new Blob([new Uint8Array(l)],{type:"image/png"});try{return createImageBitmap(o)}catch(c){throw new Error(`Could not load image because of ${c.message}. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported.`)}}),h.e=st,h.f=l=>new Promise((o,c)=>{const p=new Image;p.onload=()=>{o(p),URL.revokeObjectURL(p.src),p.onload=null,window.requestAnimationFrame(()=>{p.src=Ge})},p.onerror=()=>c(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."));const g=new Blob([new Uint8Array(l)],{type:"image/png"});p.src=l.byteLength?URL.createObjectURL(g):Ge}),h.g=mn,h.h=(l,o)=>ie(st(l,{type:"json"}),o),h.i=Jt,h.j=Ee,h.k=Nt,h.l=(l,o)=>ie(st(l,{type:"arrayBuffer"}),o),h.m=ie,h.n=function(l){return new C_(l).readFields(nS,[])},h.o=hp,h.p=iv,h.q=vo,h.r=a_,h.s=Je,h.t=su,h.u=ve,h.v=Bt,h.w=te,h.x=El,h.y=function([l,o,c]){return o+=90,o*=Math.PI/180,c*=Math.PI/180,{x:l*Math.cos(o)*Math.sin(c),y:l*Math.sin(o)*Math.sin(c),z:l*Math.cos(c)}},h.z=ro}),r("worker",["./shared"],function(h){class u{constructor(j){this.keyCache={},j&&this.replace(j)}replace(j){this._layerConfigs={},this._layers={},this.update(j,[])}update(j,W){for(const nt of j){this._layerConfigs[nt.id]=nt;const Ct=this._layers[nt.id]=h.az(nt);Ct._featureFilter=h.a6(Ct.filter),this.keyCache[nt.id]&&delete this.keyCache[nt.id]}for(const nt of W)delete this.keyCache[nt],delete this._layerConfigs[nt],delete this._layers[nt];this.familiesBySource={};const K=h.bh(Object.values(this._layerConfigs),this.keyCache);for(const nt of K){const Ct=nt.map(Xt=>this._layers[Xt.id]),J=Ct[0];if(J.visibility==="none")continue;const Tt=J.source||"";let _t=this.familiesBySource[Tt];_t||(_t=this.familiesBySource[Tt]={});const At=J.sourceLayer||"_geojsonTileLayer";let Vt=_t[At];Vt||(Vt=_t[At]=[]),Vt.push(Ct)}}}class _{constructor(j){const W={},K=[];for(const Tt in j){const _t=j[Tt],At=W[Tt]={};for(const Vt in _t){const Xt=_t[+Vt];if(!Xt||Xt.bitmap.width===0||Xt.bitmap.height===0)continue;const Yt={x:0,y:0,w:Xt.bitmap.width+2,h:Xt.bitmap.height+2};K.push(Yt),At[Vt]={rect:Yt,metrics:Xt.metrics}}}const{w:nt,h:Ct}=h.p(K),J=new h.o({width:nt||1,height:Ct||1});for(const Tt in j){const _t=j[Tt];for(const At in _t){const Vt=_t[+At];if(!Vt||Vt.bitmap.width===0||Vt.bitmap.height===0)continue;const Xt=W[Tt][At].rect;h.o.copy(Vt.bitmap,J,{x:0,y:0},{x:Xt.x+1,y:Xt.y+1},Vt.bitmap)}}this.image=J,this.positions=W}}h.bi("GlyphAtlas",_);class w{constructor(j){this.tileID=new h.Q(j.tileID.overscaledZ,j.tileID.wrap,j.tileID.canonical.z,j.tileID.canonical.x,j.tileID.canonical.y),this.uid=j.uid,this.zoom=j.zoom,this.pixelRatio=j.pixelRatio,this.tileSize=j.tileSize,this.source=j.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=j.showCollisionBoxes,this.collectResourceTiming=!!j.collectResourceTiming,this.returnDependencies=!!j.returnDependencies,this.promoteId=j.promoteId,this.inFlightDependencies=[]}parse(j,W,K,nt){return h._(this,void 0,void 0,function*(){this.status="parsing",this.data=j,this.collisionBoxArray=new h.a4;const Ct=new h.bj(Object.keys(j.layers).sort()),J=new h.bk(this.tileID,this.promoteId);J.bucketLayerIDs=[];const Tt={},_t={featureIndex:J,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:K},At=W.familiesBySource[this.source];for(const pn in At){const Pi=j.layers[pn];if(!Pi)continue;Pi.version===1&&h.w(`Vector tile source "${this.source}" layer "${pn}" does not use vector tile spec v2 and therefore may have some rendering errors.`);const hr=Ct.encode(pn),io=[];for(let go=0;go=Sr.maxzoom||Sr.visibility!=="none"&&(S(go,this.zoom,K),(Tt[Sr.id]=Sr.createBucket({index:J.bucketLayerIDs.length,layers:go,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:hr,sourceID:this.source})).populate(io,_t,this.tileID.canonical),J.bucketLayerIDs.push(go.map(js=>js.id)))}}const Vt=h.aE(_t.glyphDependencies,pn=>Object.keys(pn).map(Number));this.inFlightDependencies.forEach(pn=>pn==null?void 0:pn.abort()),this.inFlightDependencies=[];let Xt=Promise.resolve({});if(Object.keys(Vt).length){const pn=new AbortController;this.inFlightDependencies.push(pn),Xt=nt.sendAsync({type:"GG",data:{stacks:Vt,source:this.source,tileID:this.tileID,type:"glyphs"}},pn)}const Yt=Object.keys(_t.iconDependencies);let ke=Promise.resolve({});if(Yt.length){const pn=new AbortController;this.inFlightDependencies.push(pn),ke=nt.sendAsync({type:"GI",data:{icons:Yt,source:this.source,tileID:this.tileID,type:"icons"}},pn)}const Ne=Object.keys(_t.patternDependencies);let tn=Promise.resolve({});if(Ne.length){const pn=new AbortController;this.inFlightDependencies.push(pn),tn=nt.sendAsync({type:"GI",data:{icons:Ne,source:this.source,tileID:this.tileID,type:"patterns"}},pn)}const[rn,Cn,Yn]=yield Promise.all([Xt,ke,tn]),di=new _(rn),tr=new h.bl(Cn,Yn);for(const pn in Tt){const Pi=Tt[pn];Pi instanceof h.a5?(S(Pi.layers,this.zoom,K),h.bm({bucket:Pi,glyphMap:rn,glyphPositions:di.positions,imageMap:Cn,imagePositions:tr.iconPositions,showCollisionBoxes:this.showCollisionBoxes,canonical:this.tileID.canonical})):Pi.hasPattern&&(Pi instanceof h.bn||Pi instanceof h.bo||Pi instanceof h.bp)&&(S(Pi.layers,this.zoom,K),Pi.addFeatures(_t,this.tileID.canonical,tr.patternPositions))}return this.status="done",{buckets:Object.values(Tt).filter(pn=>!pn.isEmpty()),featureIndex:J,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:di.image,imageAtlas:tr,glyphMap:this.returnDependencies?rn:null,iconMap:this.returnDependencies?Cn:null,glyphPositions:this.returnDependencies?di.positions:null}})}}function S(lt,j,W){const K=new h.a8(j);for(const nt of lt)nt.recalculate(K,W)}class E{constructor(j,W,K){this.actor=j,this.layerIndex=W,this.availableImages=K,this.fetching={},this.loading={},this.loaded={}}loadVectorTile(j,W){return h._(this,void 0,void 0,function*(){const K=yield h.l(j.request,W);try{return{vectorTile:new h.bq.VectorTile(new h.br(K.data)),rawData:K.data,cacheControl:K.cacheControl,expires:K.expires}}catch(nt){const Ct=new Uint8Array(K.data);let J=`Unable to parse the tile at ${j.request.url}, `;throw J+=Ct[0]===31&&Ct[1]===139?"please make sure the data is not gzipped and that you have configured the relevant header in the server":`got error: ${nt.messge}`,new Error(J)}})}loadTile(j){return h._(this,void 0,void 0,function*(){const W=j.uid,K=!!(j&&j.request&&j.request.collectResourceTiming)&&new h.bs(j.request),nt=new w(j);this.loading[W]=nt;const Ct=new AbortController;nt.abort=Ct;try{const J=yield this.loadVectorTile(j,Ct);if(delete this.loading[W],!J)return null;const Tt=J.rawData,_t={};J.expires&&(_t.expires=J.expires),J.cacheControl&&(_t.cacheControl=J.cacheControl);const At={};if(K){const Xt=K.finish();Xt&&(At.resourceTiming=JSON.parse(JSON.stringify(Xt)))}nt.vectorTile=J.vectorTile;const Vt=nt.parse(J.vectorTile,this.layerIndex,this.availableImages,this.actor);this.loaded[W]=nt,this.fetching[W]={rawTileData:Tt,cacheControl:_t,resourceTiming:At};try{const Xt=yield Vt;return h.e({rawTileData:Tt.slice(0)},Xt,_t,At)}finally{delete this.fetching[W]}}catch(J){throw delete this.loading[W],nt.status="done",this.loaded[W]=nt,J}})}reloadTile(j){return h._(this,void 0,void 0,function*(){const W=j.uid;if(!this.loaded||!this.loaded[W])throw new Error("Should not be trying to reload a tile that was never loaded or has been removed");const K=this.loaded[W];if(K.showCollisionBoxes=j.showCollisionBoxes,K.status==="parsing"){const nt=yield K.parse(K.vectorTile,this.layerIndex,this.availableImages,this.actor);let Ct;if(this.fetching[W]){const{rawTileData:J,cacheControl:Tt,resourceTiming:_t}=this.fetching[W];delete this.fetching[W],Ct=h.e({rawTileData:J.slice(0)},nt,Tt,_t)}else Ct=nt;return Ct}if(K.status==="done"&&K.vectorTile)return K.parse(K.vectorTile,this.layerIndex,this.availableImages,this.actor)})}abortTile(j){return h._(this,void 0,void 0,function*(){const W=this.loading,K=j.uid;W&&W[K]&&W[K].abort&&(W[K].abort.abort(),delete W[K])})}removeTile(j){return h._(this,void 0,void 0,function*(){this.loaded&&this.loaded[j.uid]&&delete this.loaded[j.uid]})}}class M{constructor(){this.loaded={}}loadTile(j){return h._(this,void 0,void 0,function*(){const{uid:W,encoding:K,rawImageData:nt,redFactor:Ct,greenFactor:J,blueFactor:Tt,baseShift:_t}=j,At=nt.width+2,Vt=nt.height+2,Xt=h.b(nt)?new h.R({width:At,height:Vt},yield h.bt(nt,-1,-1,At,Vt)):nt,Yt=new h.bu(W,Xt,K,Ct,J,Tt,_t);return this.loaded=this.loaded||{},this.loaded[W]=Yt,Yt})}removeTile(j){const W=this.loaded,K=j.uid;W&&W[K]&&delete W[K]}}function A(lt,j){if(lt.length!==0){D(lt[0],j);for(var W=1;W=Math.abs(Tt)?W-_t+Tt:Tt-_t+W,W=_t}W+K>=0!=!!j&<.reverse()}var O=h.bv(function lt(j,W){var K,nt=j&&j.type;if(nt==="FeatureCollection")for(K=0;K>31}function ce(lt,j){for(var W=lt.loadGeometry(),K=lt.type,nt=0,Ct=0,J=W.length,Tt=0;Ttlt},Ge=Math.fround||(Te=new Float32Array(1),lt=>(Te[0]=+lt,Te[0]));var Te;const ze=3,Fe=5,Xe=6;class Dn{constructor(j){this.options=Object.assign(Object.create(Re),j),this.trees=new Array(this.options.maxZoom+1),this.stride=this.options.reduce?7:6,this.clusterProps=[]}load(j){const{log:W,minZoom:K,maxZoom:nt}=this.options;W&&console.time("total time");const Ct=`prepare ${j.length} points`;W&&console.time(Ct),this.points=j;const J=[];for(let _t=0;_t=K;_t--){const At=+Date.now();Tt=this.trees[_t]=this._createTree(this._cluster(Tt,_t)),W&&console.log("z%d: %d clusters in %dms",_t,Tt.numItems,+Date.now()-At)}return W&&console.timeEnd("total time"),this}getClusters(j,W){let K=((j[0]+180)%360+360)%360-180;const nt=Math.max(-90,Math.min(90,j[1]));let Ct=j[2]===180?180:((j[2]+180)%360+360)%360-180;const J=Math.max(-90,Math.min(90,j[3]));if(j[2]-j[0]>=360)K=-180,Ct=180;else if(K>Ct){const Xt=this.getClusters([K,nt,180,J],W),Yt=this.getClusters([-180,nt,Ct,J],W);return Xt.concat(Yt)}const Tt=this.trees[this._limitZoom(W)],_t=Tt.range(ri(K),oi(J),ri(Ct),oi(nt)),At=Tt.data,Vt=[];for(const Xt of _t){const Yt=this.stride*Xt;Vt.push(At[Yt+Fe]>1?Sn(At,Yt,this.clusterProps):this.points[At[Yt+ze]])}return Vt}getChildren(j){const W=this._getOriginId(j),K=this._getOriginZoom(j),nt="No cluster with the specified id.",Ct=this.trees[K];if(!Ct)throw new Error(nt);const J=Ct.data;if(W*this.stride>=J.length)throw new Error(nt);const Tt=this.options.radius/(this.options.extent*Math.pow(2,K-1)),_t=Ct.within(J[W*this.stride],J[W*this.stride+1],Tt),At=[];for(const Vt of _t){const Xt=Vt*this.stride;J[Xt+4]===j&&At.push(J[Xt+Fe]>1?Sn(J,Xt,this.clusterProps):this.points[J[Xt+ze]])}if(At.length===0)throw new Error(nt);return At}getLeaves(j,W,K){const nt=[];return this._appendLeaves(nt,j,W=W||10,K=K||0,0),nt}getTile(j,W,K){const nt=this.trees[this._limitZoom(j)],Ct=Math.pow(2,j),{extent:J,radius:Tt}=this.options,_t=Tt/J,At=(K-_t)/Ct,Vt=(K+1+_t)/Ct,Xt={features:[]};return this._addTileFeatures(nt.range((W-_t)/Ct,At,(W+1+_t)/Ct,Vt),nt.data,W,K,Ct,Xt),W===0&&this._addTileFeatures(nt.range(1-_t/Ct,At,1,Vt),nt.data,Ct,K,Ct,Xt),W===Ct-1&&this._addTileFeatures(nt.range(0,At,_t/Ct,Vt),nt.data,-1,K,Ct,Xt),Xt.features.length?Xt:null}getClusterExpansionZoom(j){let W=this._getOriginZoom(j)-1;for(;W<=this.options.maxZoom;){const K=this.getChildren(j);if(W++,K.length!==1)break;j=K[0].properties.cluster_id}return W}_appendLeaves(j,W,K,nt,Ct){const J=this.getChildren(W);for(const Tt of J){const _t=Tt.properties;if(_t&&_t.cluster?Ct+_t.point_count<=nt?Ct+=_t.point_count:Ct=this._appendLeaves(j,_t.cluster_id,K,nt,Ct):Ct1;let Vt,Xt,Yt;if(At)Vt=mn(W,_t,this.clusterProps),Xt=W[_t],Yt=W[_t+1];else{const tn=this.points[W[_t+ze]];Vt=tn.properties;const[rn,Cn]=tn.geometry.coordinates;Xt=ri(rn),Yt=oi(Cn)}const ke={type:1,geometry:[[Math.round(this.options.extent*(Xt*Ct-K)),Math.round(this.options.extent*(Yt*Ct-nt))]],tags:Vt};let Ne;Ne=At||this.options.generateId?W[_t+ze]:this.points[W[_t+ze]].id,Ne!==void 0&&(ke.id=Ne),J.features.push(ke)}}_limitZoom(j){return Math.max(this.options.minZoom,Math.min(Math.floor(+j),this.options.maxZoom+1))}_cluster(j,W){const{radius:K,extent:nt,reduce:Ct,minPoints:J}=this.options,Tt=K/(nt*Math.pow(2,W)),_t=j.data,At=[],Vt=this.stride;for(let Xt=0;Xt<_t.length;Xt+=Vt){if(_t[Xt+2]<=W)continue;_t[Xt+2]=W;const Yt=_t[Xt],ke=_t[Xt+1],Ne=j.within(_t[Xt],_t[Xt+1],Tt),tn=_t[Xt+Fe];let rn=tn;for(const Cn of Ne){const Yn=Cn*Vt;_t[Yn+2]>W&&(rn+=_t[Yn+Fe])}if(rn>tn&&rn>=J){let Cn,Yn=Yt*tn,di=ke*tn,tr=-1;const pn=((Xt/Vt|0)<<5)+(W+1)+this.points.length;for(const Pi of Ne){const hr=Pi*Vt;if(_t[hr+2]<=W)continue;_t[hr+2]=W;const io=_t[hr+Fe];Yn+=_t[hr]*io,di+=_t[hr+1]*io,_t[hr+4]=pn,Ct&&(Cn||(Cn=this._map(_t,Xt,!0),tr=this.clusterProps.length,this.clusterProps.push(Cn)),Ct(Cn,this._map(_t,hr)))}_t[Xt+4]=pn,At.push(Yn/rn,di/rn,1/0,pn,-1,rn),Ct&&At.push(tr)}else{for(let Cn=0;Cn1)for(const Cn of Ne){const Yn=Cn*Vt;if(!(_t[Yn+2]<=W)){_t[Yn+2]=W;for(let di=0;di>5}_getOriginZoom(j){return(j-this.points.length)%32}_map(j,W,K){if(j[W+Fe]>1){const J=this.clusterProps[j[W+Xe]];return K?Object.assign({},J):J}const nt=this.points[j[W+ze]].properties,Ct=this.options.map(nt);return K&&Ct===nt?Object.assign({},Ct):Ct}}function Sn(lt,j,W){return{type:"Feature",id:lt[j+ze],properties:mn(lt,j,W),geometry:{type:"Point",coordinates:[(K=lt[j],360*(K-.5)),$n(lt[j+1])]}};var K}function mn(lt,j,W){const K=lt[j+Fe],nt=K>=1e4?`${Math.round(K/1e3)}k`:K>=1e3?Math.round(K/100)/10+"k":K,Ct=lt[j+Xe],J=Ct===-1?{}:Object.assign({},W[Ct]);return Object.assign(J,{cluster:!0,cluster_id:lt[j+ze],point_count:K,point_count_abbreviated:nt})}function ri(lt){return lt/360+.5}function oi(lt){const j=Math.sin(lt*Math.PI/180),W=.5-.25*Math.log((1+j)/(1-j))/Math.PI;return W<0?0:W>1?1:W}function $n(lt){const j=(180-360*lt)*Math.PI/180;return 360*Math.atan(Math.exp(j))/Math.PI-90}function ie(lt,j,W,K){for(var nt,Ct=K,J=W-j>>1,Tt=W-j,_t=lt[j],At=lt[j+1],Vt=lt[W],Xt=lt[W+1],Yt=j+3;YtCt)nt=Yt,Ct=ke;else if(ke===Ct){var Ne=Math.abs(Yt-J);NeK&&(nt-j>3&&ie(lt,j,nt,K),lt[nt+2]=Ct,W-nt>3&&ie(lt,nt,W,K))}function Je(lt,j,W,K,nt,Ct){var J=nt-W,Tt=Ct-K;if(J!==0||Tt!==0){var _t=((lt-W)*J+(j-K)*Tt)/(J*J+Tt*Tt);_t>1?(W=nt,K=Ct):_t>0&&(W+=J*_t,K+=Tt*_t)}return(J=lt-W)*J+(Tt=j-K)*Tt}function $e(lt,j,W,K){var nt={id:lt===void 0?null:lt,type:j,geometry:W,tags:K,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return function(Ct){var J=Ct.geometry,Tt=Ct.type;if(Tt==="Point"||Tt==="MultiPoint"||Tt==="LineString")Ht(Ct,J);else if(Tt==="Polygon"||Tt==="MultiLineString")for(var _t=0;_t0&&(J+=K?(nt*At-_t*Ct)/2:Math.sqrt(Math.pow(_t-nt,2)+Math.pow(At-Ct,2))),nt=_t,Ct=At}var Vt=j.length-3;j[2]=1,ie(j,0,Vt,W),j[Vt+2]=1,j.size=Math.abs(J),j.start=0,j.end=j.size}function Bt(lt,j,W,K){for(var nt=0;nt1?1:W}function gn(lt,j,W,K,nt,Ct,J,Tt){if(K/=j,Ct>=(W/=j)&&J=K)return null;for(var _t=[],At=0;At=W&&Ne=K)){var tn=[];if(Yt==="Point"||Yt==="MultiPoint")si(Xt,tn,W,K,nt);else if(Yt==="LineString")Do(Xt,tn,W,K,nt,!1,Tt.lineMetrics);else if(Yt==="MultiLineString")Gs(Xt,tn,W,K,nt,!1);else if(Yt==="Polygon")Gs(Xt,tn,W,K,nt,!0);else if(Yt==="MultiPolygon")for(var rn=0;rn=W&&J<=K&&(j.push(lt[Ct]),j.push(lt[Ct+1]),j.push(lt[Ct+2]))}}function Do(lt,j,W,K,nt,Ct,J){for(var Tt,_t,At=vs(lt),Vt=nt===0?Dr:yl,Xt=lt.start,Yt=0;YtW&&(_t=Vt(At,ke,Ne,rn,Cn,W),J&&(At.start=Xt+Tt*_t)):Yn>K?di=W&&(_t=Vt(At,ke,Ne,rn,Cn,W),tr=!0),di>K&&Yn<=K&&(_t=Vt(At,ke,Ne,rn,Cn,K),tr=!0),!Ct&&tr&&(J&&(At.end=Xt+Tt*_t),j.push(At),At=vs(lt)),J&&(Xt+=Tt)}var pn=lt.length-3;ke=lt[pn],Ne=lt[pn+1],tn=lt[pn+2],(Yn=nt===0?ke:Ne)>=W&&Yn<=K&&ja(At,ke,Ne,tn),pn=At.length-3,Ct&&pn>=3&&(At[pn]!==At[0]||At[pn+1]!==At[1])&&ja(At,At[0],At[1],At[2]),At.length&&j.push(At)}function vs(lt){var j=[];return j.size=lt.size,j.start=lt.start,j.end=lt.end,j}function Gs(lt,j,W,K,nt,Ct){for(var J=0;JJ.maxX&&(J.maxX=Vt),Xt>J.maxY&&(J.maxY=Xt)}return J}function Qi(lt,j,W,K){var nt=j.geometry,Ct=j.type,J=[];if(Ct==="Point"||Ct==="MultiPoint")for(var Tt=0;Tt0&&j.size<(nt?J:K))W.numPoints+=j.length/3;else{for(var Tt=[],_t=0;_tJ)&&(W.numSimplified++,Tt.push(j[_t]),Tt.push(j[_t+1])),W.numPoints++;nt&&function(At,Vt){for(var Xt=0,Yt=0,ke=At.length,Ne=ke-2;Yt0===Vt)for(Yt=0,ke=At.length;Yt24)throw new Error("maxZoom should be in the 0-24 range");if(j.promoteId&&j.generateId)throw new Error("promoteId and generateId cannot be used together.");var K=function(nt,Ct){var J=[];if(nt.type==="FeatureCollection")for(var Tt=0;Tt1&&console.time("creation"),Yt=this.tiles[Xt]=vl(lt,j,W,K,_t),this.tileCoords.push({z:j,x:W,y:K}),At)){At>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",j,W,K,Yt.numFeatures,Yt.numPoints,Yt.numSimplified),console.timeEnd("creation"));var ke="z"+j;this.stats[ke]=(this.stats[ke]||0)+1,this.total++}if(Yt.source=lt,nt){if(j===_t.maxZoom||j===nt)continue;var Ne=1<1&&console.time("clipping");var tn,rn,Cn,Yn,di,tr,pn=.5*_t.buffer/_t.extent,Pi=.5-pn,hr=.5+pn,io=1+pn;tn=rn=Cn=Yn=null,di=gn(lt,Vt,W-pn,W+hr,0,Yt.minX,Yt.maxX,_t),tr=gn(lt,Vt,W+Pi,W+io,0,Yt.minX,Yt.maxX,_t),lt=null,di&&(tn=gn(di,Vt,K-pn,K+hr,1,Yt.minY,Yt.maxY,_t),rn=gn(di,Vt,K+Pi,K+io,1,Yt.minY,Yt.maxY,_t),di=null),tr&&(Cn=gn(tr,Vt,K-pn,K+hr,1,Yt.minY,Yt.maxY,_t),Yn=gn(tr,Vt,K+Pi,K+io,1,Yt.minY,Yt.maxY,_t),tr=null),At>1&&console.timeEnd("clipping"),Tt.push(tn||[],j+1,2*W,2*K),Tt.push(rn||[],j+1,2*W,2*K+1),Tt.push(Cn||[],j+1,2*W+1,2*K),Tt.push(Yn||[],j+1,2*W+1,2*K+1)}}},un.prototype.getTile=function(lt,j,W){var K=this.options,nt=K.extent,Ct=K.debug;if(lt<0||lt>24)return null;var J=1<1&&console.log("drilling down to z%d-%d-%d",lt,j,W);for(var _t,At=lt,Vt=j,Xt=W;!_t&&At>0;)At--,Vt=Math.floor(Vt/2),Xt=Math.floor(Xt/2),_t=this.tiles[an(At,Vt,Xt)];return _t&&_t.source?(Ct>1&&console.log("found parent tile z%d-%d-%d",At,Vt,Xt),Ct>1&&console.time("drilling down"),this.splitTile(_t.source,At,Vt,Xt,lt,j,W),Ct>1&&console.timeEnd("drilling down"),this.tiles[Tt]?ns(this.tiles[Tt],nt):null):null};class ba extends E{constructor(){super(...arguments),this._dataUpdateable=new Map}loadVectorTile(j,W){return h._(this,void 0,void 0,function*(){const K=j.tileID.canonical;if(!this._geoJSONIndex)throw new Error("Unable to parse the data into a cluster or geojson");const nt=this._geoJSONIndex.getTile(K.z,K.x,K.y);if(!nt)return null;const Ct=new class{constructor(Tt){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=h.W,this.length=Tt.length,this._features=Tt}feature(Tt){return new class{constructor(_t){this._feature=_t,this.extent=h.W,this.type=_t.type,this.properties=_t.tags,"id"in _t&&!isNaN(_t.id)&&(this.id=parseInt(_t.id,10))}loadGeometry(){if(this._feature.type===1){const _t=[];for(const At of this._feature.geometry)_t.push([new h.P(At[0],At[1])]);return _t}{const _t=[];for(const At of this._feature.geometry){const Vt=[];for(const Xt of At)Vt.push(new h.P(Xt[0],Xt[1]));_t.push(Vt)}return _t}}toGeoJSON(_t,At,Vt){return F.call(this,_t,At,Vt)}}(this._features[Tt])}}(nt.features);let J=re(Ct);return J.byteOffset===0&&J.byteLength===J.buffer.byteLength||(J=new Uint8Array(J)),{vectorTile:Ct,rawData:J.buffer}})}loadData(j){return h._(this,void 0,void 0,function*(){var W;(W=this._pendingRequest)===null||W===void 0||W.abort();const K=!!(j&&j.request&&j.request.collectResourceTiming)&&new h.bs(j.request);this._pendingRequest=new AbortController;try{let nt=yield this.loadGeoJSON(j,this._pendingRequest);if(delete this._pendingRequest,typeof nt!="object")throw new Error(`Input data given to '${j.source}' is not a valid GeoJSON object.`);if(O(nt,!0),j.filter){const J=h.by(j.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(J.result==="error")throw new Error(J.value.map(_t=>`${_t.key}: ${_t.message}`).join(", "));nt={type:"FeatureCollection",features:nt.features.filter(_t=>J.value.evaluate({zoom:0},_t))}}this._geoJSONIndex=j.cluster?new Dn(function({superclusterOptions:J,clusterProperties:Tt}){if(!Tt||!J)return J;const _t={},At={},Vt={accumulated:null,zoom:0},Xt={properties:null},Yt=Object.keys(Tt);for(const ke of Yt){const[Ne,tn]=Tt[ke],rn=h.by(tn),Cn=h.by(typeof Ne=="string"?[Ne,["accumulated"],["get",ke]]:Ne);_t[ke]=rn.value,At[ke]=Cn.value}return J.map=ke=>{Xt.properties=ke;const Ne={};for(const tn of Yt)Ne[tn]=_t[tn].evaluate(Vt,Xt);return Ne},J.reduce=(ke,Ne)=>{Xt.properties=Ne;for(const tn of Yt)Vt.accumulated=ke[tn],ke[tn]=At[tn].evaluate(Vt,Xt)},J}(j)).load(nt.features):function(J,Tt){return new un(J,Tt)}(nt,j.geojsonVtOptions),this.loaded={};const Ct={};if(K){const J=K.finish();J&&(Ct.resourceTiming={},Ct.resourceTiming[j.source]=JSON.parse(JSON.stringify(J)))}return Ct}catch(nt){if(delete this._pendingRequest,h.bz(nt))return{abandoned:!0};throw nt}})}reloadTile(j){const W=this.loaded;return W&&W[j.uid]?super.reloadTile(j):this.loadTile(j)}loadGeoJSON(j,W){return h._(this,void 0,void 0,function*(){const{promoteId:K}=j;if(j.request){const nt=yield h.h(j.request,W);return this._dataUpdateable=is(nt.data,K)?sn(nt.data,K):void 0,nt.data}if(typeof j.data=="string")try{const nt=JSON.parse(j.data);return this._dataUpdateable=is(nt,K)?sn(nt,K):void 0,nt}catch{throw new Error(`Input data given to '${j.source}' is not a valid GeoJSON object.`)}if(!j.dataDiff)throw new Error(`Input data given to '${j.source}' is not a valid GeoJSON object.`);if(!this._dataUpdateable)throw new Error(`Cannot update existing geojson data in ${j.source}`);return function(nt,Ct,J){var Tt,_t,At,Vt;if(Ct.removeAll&&nt.clear(),Ct.remove)for(const Xt of Ct.remove)nt.delete(Xt);if(Ct.add)for(const Xt of Ct.add){const Yt=Fi(Xt,J);Yt!=null&&nt.set(Yt,Xt)}if(Ct.update)for(const Xt of Ct.update){let Yt=nt.get(Xt.id);if(Yt==null)continue;const ke=!Xt.removeAllProperties&&(((Tt=Xt.removeProperties)===null||Tt===void 0?void 0:Tt.length)>0||((_t=Xt.addOrUpdateProperties)===null||_t===void 0?void 0:_t.length)>0);if((Xt.newGeometry||Xt.removeAllProperties||ke)&&(Yt=Object.assign({},Yt),nt.set(Xt.id,Yt),ke&&(Yt.properties=Object.assign({},Yt.properties))),Xt.newGeometry&&(Yt.geometry=Xt.newGeometry),Xt.removeAllProperties)Yt.properties={};else if(((At=Xt.removeProperties)===null||At===void 0?void 0:At.length)>0)for(const Ne of Xt.removeProperties)Object.prototype.hasOwnProperty.call(Yt.properties,Ne)&&delete Yt.properties[Ne];if(((Vt=Xt.addOrUpdateProperties)===null||Vt===void 0?void 0:Vt.length)>0)for(const{key:Ne,value:tn}of Xt.addOrUpdateProperties)Yt.properties[Ne]=tn}}(this._dataUpdateable,j.dataDiff,K),{type:"FeatureCollection",features:Array.from(this._dataUpdateable.values())}})}removeSource(j){return h._(this,void 0,void 0,function*(){this._pendingRequest&&this._pendingRequest.abort()})}getClusterExpansionZoom(j){return this._geoJSONIndex.getClusterExpansionZoom(j.clusterId)}getClusterChildren(j){return this._geoJSONIndex.getChildren(j.clusterId)}getClusterLeaves(j){return this._geoJSONIndex.getLeaves(j.clusterId,j.limit,j.offset)}}class ji{constructor(j){this.self=j,this.actor=new h.C(j),this.layerIndexes={},this.availableImages={},this.workerSources={},this.demWorkerSources={},this.externalWorkerSourceTypes={},this.self.registerWorkerSource=(W,K)=>{if(this.externalWorkerSourceTypes[W])throw new Error(`Worker source with name "${W}" already registered.`);this.externalWorkerSourceTypes[W]=K},this.self.addProtocol=h.bf,this.self.removeProtocol=h.bg,this.self.registerRTLTextPlugin=W=>{if(h.bA.isParsed())throw new Error("RTL text plugin already registered.");h.bA.setMethods(W)},this.actor.registerMessageHandler("LDT",(W,K)=>this._getDEMWorkerSource(W,K.source).loadTile(K)),this.actor.registerMessageHandler("RDT",(W,K)=>h._(this,void 0,void 0,function*(){this._getDEMWorkerSource(W,K.source).removeTile(K)})),this.actor.registerMessageHandler("GCEZ",(W,K)=>h._(this,void 0,void 0,function*(){return this._getWorkerSource(W,K.type,K.source).getClusterExpansionZoom(K)})),this.actor.registerMessageHandler("GCC",(W,K)=>h._(this,void 0,void 0,function*(){return this._getWorkerSource(W,K.type,K.source).getClusterChildren(K)})),this.actor.registerMessageHandler("GCL",(W,K)=>h._(this,void 0,void 0,function*(){return this._getWorkerSource(W,K.type,K.source).getClusterLeaves(K)})),this.actor.registerMessageHandler("LD",(W,K)=>this._getWorkerSource(W,K.type,K.source).loadData(K)),this.actor.registerMessageHandler("LT",(W,K)=>this._getWorkerSource(W,K.type,K.source).loadTile(K)),this.actor.registerMessageHandler("RT",(W,K)=>this._getWorkerSource(W,K.type,K.source).reloadTile(K)),this.actor.registerMessageHandler("AT",(W,K)=>this._getWorkerSource(W,K.type,K.source).abortTile(K)),this.actor.registerMessageHandler("RMT",(W,K)=>this._getWorkerSource(W,K.type,K.source).removeTile(K)),this.actor.registerMessageHandler("RS",(W,K)=>h._(this,void 0,void 0,function*(){if(!this.workerSources[W]||!this.workerSources[W][K.type]||!this.workerSources[W][K.type][K.source])return;const nt=this.workerSources[W][K.type][K.source];delete this.workerSources[W][K.type][K.source],nt.removeSource!==void 0&&nt.removeSource(K)})),this.actor.registerMessageHandler("RM",W=>h._(this,void 0,void 0,function*(){delete this.layerIndexes[W],delete this.availableImages[W],delete this.workerSources[W],delete this.demWorkerSources[W]})),this.actor.registerMessageHandler("SR",(W,K)=>h._(this,void 0,void 0,function*(){this.referrer=K})),this.actor.registerMessageHandler("SRPS",(W,K)=>this._syncRTLPluginState(W,K)),this.actor.registerMessageHandler("IS",(W,K)=>h._(this,void 0,void 0,function*(){this.self.importScripts(K)})),this.actor.registerMessageHandler("SI",(W,K)=>this._setImages(W,K)),this.actor.registerMessageHandler("UL",(W,K)=>h._(this,void 0,void 0,function*(){this._getLayerIndex(W).update(K.layers,K.removedIds)})),this.actor.registerMessageHandler("SL",(W,K)=>h._(this,void 0,void 0,function*(){this._getLayerIndex(W).replace(K)}))}_setImages(j,W){return h._(this,void 0,void 0,function*(){this.availableImages[j]=W;for(const K in this.workerSources[j]){const nt=this.workerSources[j][K];for(const Ct in nt)nt[Ct].availableImages=W}})}_syncRTLPluginState(j,W){return h._(this,void 0,void 0,function*(){if(h.bA.isParsed())return h.bA.getState();if(W.pluginStatus!=="loading")return h.bA.setState(W),W;const K=W.pluginURL;if(this.self.importScripts(K),h.bA.isParsed()){const nt={pluginStatus:"loaded",pluginURL:K};return h.bA.setState(nt),nt}throw h.bA.setState({pluginStatus:"error",pluginURL:""}),new Error(`RTL Text Plugin failed to import scripts from ${K}`)})}_getAvailableImages(j){let W=this.availableImages[j];return W||(W=[]),W}_getLayerIndex(j){let W=this.layerIndexes[j];return W||(W=this.layerIndexes[j]=new u),W}_getWorkerSource(j,W,K){if(this.workerSources[j]||(this.workerSources[j]={}),this.workerSources[j][W]||(this.workerSources[j][W]={}),!this.workerSources[j][W][K]){const nt={sendAsync:(Ct,J)=>(Ct.targetMapId=j,this.actor.sendAsync(Ct,J))};switch(W){case"vector":this.workerSources[j][W][K]=new E(nt,this._getLayerIndex(j),this._getAvailableImages(j));break;case"geojson":this.workerSources[j][W][K]=new ba(nt,this._getLayerIndex(j),this._getAvailableImages(j));break;default:this.workerSources[j][W][K]=new this.externalWorkerSourceTypes[W](nt,this._getLayerIndex(j),this._getAvailableImages(j))}}return this.workerSources[j][W][K]}_getDEMWorkerSource(j,W){return this.demWorkerSources[j]||(this.demWorkerSources[j]={}),this.demWorkerSources[j][W]||(this.demWorkerSources[j][W]=new M),this.demWorkerSources[j][W]}}return h.i(self)&&(self.worker=new ji(self)),ji}),r("index",["exports","./shared"],function(h,u){var _="4.1.3";let w,S;const E={now:typeof performance<"u"&&performance&&performance.now?performance.now.bind(performance):Date.now.bind(Date),frameAsync:y=>new Promise((s,f)=>{const d=requestAnimationFrame(s);y.signal.addEventListener("abort",()=>{cancelAnimationFrame(d),f(u.c())})}),getImageData(y,s=0){return this.getImageCanvasContext(y).getImageData(-s,-s,y.width+2*s,y.height+2*s)},getImageCanvasContext(y){const s=window.document.createElement("canvas"),f=s.getContext("2d",{willReadFrequently:!0});if(!f)throw new Error("failed to create canvas 2d context");return s.width=y.width,s.height=y.height,f.drawImage(y,0,0,y.width,y.height),f},resolveURL:y=>(w||(w=document.createElement("a")),w.href=y,w.href),hardwareConcurrency:typeof navigator<"u"&&navigator.hardwareConcurrency||4,get prefersReducedMotion(){return!!matchMedia&&(S==null&&(S=matchMedia("(prefers-reduced-motion: reduce)")),S.matches)}};class M{static testProp(s){if(!M.docStyle)return s[0];for(let f=0;f{window.removeEventListener("click",M.suppressClickInternal,!0)},0)}static getScale(s){const f=s.getBoundingClientRect();return{x:f.width/s.offsetWidth||1,y:f.height/s.offsetHeight||1,boundingClientRect:f}}static getPoint(s,f,d){const m=f.boundingClientRect;return new u.P((d.clientX-m.left)/f.x-s.clientLeft,(d.clientY-m.top)/f.y-s.clientTop)}static mousePos(s,f){const d=M.getScale(s);return M.getPoint(s,d,f)}static touchPos(s,f){const d=[],m=M.getScale(s);for(let v=0;v{s=[],f=0,d=0,m={}},y.addThrottleControl=P=>{const R=d++;return m[R]=P,R},y.removeThrottleControl=P=>{delete m[P],C()},y.getImage=(P,R,B=!0)=>new Promise((U,X)=>{A.supported&&(P.headers||(P.headers={}),P.headers.accept="image/webp,*/*"),u.e(P,{type:"image"}),s.push({abortController:R,requestParameters:P,supportImageRefresh:B,state:"queued",onError:rt=>{X(rt)},onSuccess:rt=>{U(rt)}}),C()});const v=P=>u._(this,void 0,void 0,function*(){P.state="running";const{requestParameters:R,supportImageRefresh:B,onError:U,onSuccess:X,abortController:rt}=P,it=B===!1&&!u.i(self)&&!u.g(R.url)&&(!R.headers||Object.keys(R.headers).reduce((wt,zt)=>wt&&zt==="accept",!0));f++;const ct=it?T(R,rt):u.m(R,rt);try{const wt=yield ct;delete P.abortController,P.state="completed",wt.data instanceof HTMLImageElement||u.b(wt.data)?X(wt):wt.data&&X({data:yield(tt=wt.data,typeof createImageBitmap=="function"?u.d(tt):u.f(tt)),cacheControl:wt.cacheControl,expires:wt.expires})}catch(wt){delete P.abortController,U(wt)}finally{f--,C()}var tt}),C=()=>{const P=(()=>{for(const R of Object.keys(m))if(m[R]())return!0;return!1})()?u.a.MAX_PARALLEL_IMAGE_REQUESTS_PER_FRAME:u.a.MAX_PARALLEL_IMAGE_REQUESTS;for(let R=f;R0;R++){const B=s.shift();B.abortController.signal.aborted?R--:v(B)}},T=(P,R)=>new Promise((B,U)=>{const X=new Image,rt=P.url,it=P.credentials;it&&it==="include"?X.crossOrigin="use-credentials":(it&&it==="same-origin"||!u.s(rt))&&(X.crossOrigin="anonymous"),R.signal.addEventListener("abort",()=>{X.src="",U(u.c())}),X.fetchPriority="high",X.onload=()=>{X.onerror=X.onload=null,B({data:X})},X.onerror=()=>{X.onerror=X.onload=null,R.signal.aborted||U(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))},X.src=rt})}(Z||(Z={})),Z.resetRequestQueue();class ${constructor(s){this._transformRequestFn=s}transformRequest(s,f){return this._transformRequestFn&&this._transformRequestFn(s,f)||{url:s}}normalizeSpriteURL(s,f,d){const m=function(v){const C=v.match(Q);if(!C)throw new Error(`Unable to parse URL "${v}"`);return{protocol:C[1],authority:C[2],path:C[3]||"/",params:C[4]?C[4].split("&"):[]}}(s);return m.path+=`${f}${d}`,function(v){const C=v.params.length?`?${v.params.join("&")}`:"";return`${v.protocol}://${v.authority}${v.path}${C}`}(m)}setTransformRequest(s){this._transformRequestFn=s}}const Q=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function pt(y){var s=new u.A(3);return s[0]=y[0],s[1]=y[1],s[2]=y[2],s}var st,St=function(y,s,f){return y[0]=s[0]-f[0],y[1]=s[1]-f[1],y[2]=s[2]-f[2],y};st=new u.A(3),u.A!=Float32Array&&(st[0]=0,st[1]=0,st[2]=0);var ut=function(y){var s=y[0],f=y[1];return s*s+f*f};function kt(y){const s=[];if(typeof y=="string")s.push({id:"default",url:y});else if(y&&y.length>0){const f=[];for(const{id:d,url:m}of y){const v=`${d}${m}`;f.indexOf(v)===-1&&(f.push(v),s.push({id:d,url:m}))}}return s}(function(){var y=new u.A(2);u.A!=Float32Array&&(y[0]=0,y[1]=0)})();class mt{constructor(s,f,d,m){this.context=s,this.format=d,this.texture=s.gl.createTexture(),this.update(f,m)}update(s,f,d){const{width:m,height:v}=s,C=!(this.size&&this.size[0]===m&&this.size[1]===v||d),{context:T}=this,{gl:P}=T;if(this.useMipmap=!!(f&&f.useMipmap),P.bindTexture(P.TEXTURE_2D,this.texture),T.pixelStoreUnpackFlipY.set(!1),T.pixelStoreUnpack.set(1),T.pixelStoreUnpackPremultiplyAlpha.set(this.format===P.RGBA&&(!f||f.premultiply!==!1)),C)this.size=[m,v],s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement||s instanceof ImageData||u.b(s)?P.texImage2D(P.TEXTURE_2D,0,this.format,this.format,P.UNSIGNED_BYTE,s):P.texImage2D(P.TEXTURE_2D,0,this.format,m,v,0,this.format,P.UNSIGNED_BYTE,s.data);else{const{x:R,y:B}=d||{x:0,y:0};s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement||s instanceof ImageData||u.b(s)?P.texSubImage2D(P.TEXTURE_2D,0,R,B,P.RGBA,P.UNSIGNED_BYTE,s):P.texSubImage2D(P.TEXTURE_2D,0,R,B,m,v,P.RGBA,P.UNSIGNED_BYTE,s.data)}this.useMipmap&&this.isSizePowerOfTwo()&&P.generateMipmap(P.TEXTURE_2D)}bind(s,f,d){const{context:m}=this,{gl:v}=m;v.bindTexture(v.TEXTURE_2D,this.texture),d!==v.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(d=v.LINEAR),s!==this.filter&&(v.texParameteri(v.TEXTURE_2D,v.TEXTURE_MAG_FILTER,s),v.texParameteri(v.TEXTURE_2D,v.TEXTURE_MIN_FILTER,d||s),this.filter=s),f!==this.wrap&&(v.texParameteri(v.TEXTURE_2D,v.TEXTURE_WRAP_S,f),v.texParameteri(v.TEXTURE_2D,v.TEXTURE_WRAP_T,f),this.wrap=f)}isSizePowerOfTwo(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0}destroy(){const{gl:s}=this.context;s.deleteTexture(this.texture),this.texture=null}}function Et(y){const{userImage:s}=y;return!!(s&&s.render&&s.render())&&(y.data.replace(new Uint8Array(s.data.buffer)),!0)}class te extends u.E{constructor(){super(),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new u.R({width:1,height:1}),this.dirty=!0}isLoaded(){return this.loaded}setLoaded(s){if(this.loaded!==s&&(this.loaded=s,s)){for(const{ids:f,promiseResolve:d}of this.requestors)d(this._getImagesForIds(f));this.requestors=[]}}getImage(s){const f=this.images[s];if(f&&!f.data&&f.spriteData){const d=f.spriteData;f.data=new u.R({width:d.width,height:d.height},d.context.getImageData(d.x,d.y,d.width,d.height).data),f.spriteData=null}return f}addImage(s,f){if(this.images[s])throw new Error(`Image id ${s} already exist, use updateImage instead`);this._validate(s,f)&&(this.images[s]=f)}_validate(s,f){let d=!0;const m=f.data||f.spriteData;return this._validateStretch(f.stretchX,m&&m.width)||(this.fire(new u.j(new Error(`Image "${s}" has invalid "stretchX" value`))),d=!1),this._validateStretch(f.stretchY,m&&m.height)||(this.fire(new u.j(new Error(`Image "${s}" has invalid "stretchY" value`))),d=!1),this._validateContent(f.content,f)||(this.fire(new u.j(new Error(`Image "${s}" has invalid "content" value`))),d=!1),d}_validateStretch(s,f){if(!s)return!0;let d=0;for(const m of s){if(m[0]{let m=!0;if(!this.isLoaded())for(const v of s)this.images[v]||(m=!1);this.isLoaded()||m?f(this._getImagesForIds(s)):this.requestors.push({ids:s,promiseResolve:f})})}_getImagesForIds(s){const f={};for(const d of s){let m=this.getImage(d);m||(this.fire(new u.k("styleimagemissing",{id:d})),m=this.getImage(d)),m?f[d]={data:m.data.clone(),pixelRatio:m.pixelRatio,sdf:m.sdf,version:m.version,stretchX:m.stretchX,stretchY:m.stretchY,content:m.content,hasRenderCallback:!!(m.userImage&&m.userImage.render)}:u.w(`Image "${d}" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.`)}return f}getPixelSize(){const{width:s,height:f}=this.atlasImage;return{width:s,height:f}}getPattern(s){const f=this.patterns[s],d=this.getImage(s);if(!d)return null;if(f&&f.position.version===d.version)return f.position;if(f)f.position.version=d.version;else{const m={w:d.data.width+2,h:d.data.height+2,x:0,y:0},v=new u.I(m,d);this.patterns[s]={bin:m,position:v}}return this._updatePatternAtlas(),this.patterns[s].position}bind(s){const f=s.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new mt(s,this.atlasImage,f.RGBA),this.atlasTexture.bind(f.LINEAR,f.CLAMP_TO_EDGE)}_updatePatternAtlas(){const s=[];for(const v in this.patterns)s.push(this.patterns[v].bin);const{w:f,h:d}=u.p(s),m=this.atlasImage;m.resize({width:f||1,height:d||1});for(const v in this.patterns){const{bin:C}=this.patterns[v],T=C.x+1,P=C.y+1,R=this.getImage(v).data,B=R.width,U=R.height;u.R.copy(R,m,{x:0,y:0},{x:T,y:P},{width:B,height:U}),u.R.copy(R,m,{x:0,y:U-1},{x:T,y:P-1},{width:B,height:1}),u.R.copy(R,m,{x:0,y:0},{x:T,y:P+U},{width:B,height:1}),u.R.copy(R,m,{x:B-1,y:0},{x:T-1,y:P},{width:1,height:U}),u.R.copy(R,m,{x:0,y:0},{x:T+B,y:P},{width:1,height:U})}this.dirty=!0}beginFrame(){this.callbackDispatchedThisFrame={}}dispatchRenderCallbacks(s){for(const f of s){if(this.callbackDispatchedThisFrame[f])continue;this.callbackDispatchedThisFrame[f]=!0;const d=this.getImage(f);d||u.w(`Image with ID: "${f}" was not found`),Et(d)&&this.updateImage(f,d)}}}const Pt=1e20;function ce(y,s,f,d,m,v,C,T,P){for(let R=s;R-1);P++,v[P]=T,C[P]=R,C[P+1]=Pt}for(let T=0,P=0;T65535)throw new Error("glyphs > 65535 not supported");if(d.ranges[v])return{stack:s,id:f,glyph:m};if(!this.url)throw new Error("glyphsUrl is not set");if(!d.requests[v]){const T=re.loadGlyphRange(s,v,this.url,this.requestManager);d.requests[v]=T}const C=yield d.requests[v];for(const T in C)this._doesCharSupportLocalGlyph(+T)||(d.glyphs[+T]=C[+T]);return d.ranges[v]=!0,{stack:s,id:f,glyph:C[f]||null}})}_doesCharSupportLocalGlyph(s){return!!this.localIdeographFontFamily&&(u.u["CJK Unified Ideographs"](s)||u.u["Hangul Syllables"](s)||u.u.Hiragana(s)||u.u.Katakana(s))}_tinySDF(s,f,d){const m=this.localIdeographFontFamily;if(!m||!this._doesCharSupportLocalGlyph(d))return;let v=s.tinySDF;if(!v){let T="400";/bold/i.test(f)?T="900":/medium/i.test(f)?T="500":/light/i.test(f)&&(T="200"),v=s.tinySDF=new re.TinySDF({fontSize:48,buffer:6,radius:16,cutoff:.25,fontFamily:m,fontWeight:T})}const C=v.draw(String.fromCharCode(d));return{id:d,bitmap:new u.o({width:C.width||60,height:C.height||60},C.data),metrics:{width:C.glyphWidth/2||24,height:C.glyphHeight/2||24,left:C.glyphLeft/2+.5||0,top:C.glyphTop/2-27.5||-8,advance:C.glyphAdvance/2||24,isDoubleResolution:!0}}}}re.loadGlyphRange=function(y,s,f,d){return u._(this,void 0,void 0,function*(){const m=256*s,v=m+255,C=d.transformRequest(f.replace("{fontstack}",y).replace("{range}",`${m}-${v}`),"Glyphs"),T=yield u.l(C,new AbortController);if(!T||!T.data)throw new Error(`Could not load glyph range. range: ${s}, ${m}-${v}`);const P={};for(const R of u.n(T.data))P[R.id]=R;return P})},re.TinySDF=class{constructor({fontSize:y=24,buffer:s=3,radius:f=8,cutoff:d=.25,fontFamily:m="sans-serif",fontWeight:v="normal",fontStyle:C="normal"}={}){this.buffer=s,this.cutoff=d,this.radius=f;const T=this.size=y+4*s,P=this._createCanvas(T),R=this.ctx=P.getContext("2d",{willReadFrequently:!0});R.font=`${C} ${v} ${y}px ${m}`,R.textBaseline="alphabetic",R.textAlign="left",R.fillStyle="black",this.gridOuter=new Float64Array(T*T),this.gridInner=new Float64Array(T*T),this.f=new Float64Array(T),this.z=new Float64Array(T+1),this.v=new Uint16Array(T)}_createCanvas(y){const s=document.createElement("canvas");return s.width=s.height=y,s}draw(y){const{width:s,actualBoundingBoxAscent:f,actualBoundingBoxDescent:d,actualBoundingBoxLeft:m,actualBoundingBoxRight:v}=this.ctx.measureText(y),C=Math.ceil(f),T=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(v-m))),P=Math.min(this.size-this.buffer,C+Math.ceil(d)),R=T+2*this.buffer,B=P+2*this.buffer,U=Math.max(R*B,0),X=new Uint8ClampedArray(U),rt={data:X,width:R,height:B,glyphWidth:T,glyphHeight:P,glyphTop:C,glyphLeft:0,glyphAdvance:s};if(T===0||P===0)return rt;const{ctx:it,buffer:ct,gridInner:tt,gridOuter:wt}=this;it.clearRect(ct,ct,T,P),it.fillText(y,ct,ct+C);const zt=it.getImageData(ct,ct,T,P);wt.fill(Pt,0,U),tt.fill(0,0,U);for(let ht=0;ht0?$t*$t:0,tt[Ut]=$t<0?$t*$t:0}}ce(wt,0,0,R,B,R,this.f,this.v,this.z),ce(tt,ct,ct,T,P,R,this.f,this.v,this.z);for(let ht=0;ht1&&(P=s[++T]);const B=Math.abs(R-P.left),U=Math.abs(R-P.right),X=Math.min(B,U);let rt;const it=v/d*(m+1);if(P.isDash){const ct=m-Math.abs(it);rt=Math.sqrt(X*X+ct*ct)}else rt=m-Math.sqrt(X*X+it*it);this.data[C+R]=Math.max(0,Math.min(255,rt+128))}}}addRegularDash(s){for(let T=s.length-1;T>=0;--T){const P=s[T],R=s[T+1];P.zeroLength?s.splice(T,1):R&&R.isDash===P.isDash&&(R.left=P.left,s.splice(T,1))}const f=s[0],d=s[s.length-1];f.isDash===d.isDash&&(f.left=d.left-this.width,d.right=f.right+this.width);const m=this.width*this.nextRow;let v=0,C=s[v];for(let T=0;T1&&(C=s[++v]);const P=Math.abs(T-C.left),R=Math.abs(T-C.right),B=Math.min(P,R);this.data[m+T]=Math.max(0,Math.min(255,(C.isDash?B:-B)+128))}}addDash(s,f){const d=f?7:0,m=2*d+1;if(this.nextRow+m>this.height)return u.w("LineAtlas out of space"),null;let v=0;for(let T=0;T{f.terminate()}),this.workers=null)}isPreloaded(){return!!this.active[Fe]}numActive(){return Object.keys(this.active).length}}const Dn=Math.floor(E.hardwareConcurrency/2);let Sn,mn;function ri(){return Sn||(Sn=new Xe),Sn}Xe.workerCount=u.B(globalThis)?Math.max(Math.min(Dn,3),1):1;class oi{constructor(s,f){this.workerPool=s,this.actors=[],this.currentActor=0,this.id=f;const d=this.workerPool.acquire(f);for(let m=0;m{f.remove()}),this.actors=[],s&&this.workerPool.release(this.id)}registerMessageHandler(s,f){for(const d of this.actors)d.registerMessageHandler(s,f)}}function $n(){return mn||(mn=new oi(ri(),u.G),mn.registerMessageHandler("GR",(y,s,f)=>u.m(s,f))),mn}function ie(y,s){const f=u.F();return u.H(f,f,[1,1,0]),u.J(f,f,[.5*y.width,.5*y.height,1]),u.K(f,f,y.calculatePosMatrix(s.toUnwrapped()))}function Je(y,s,f,d,m,v){const C=function(U,X,rt){if(U)for(const it of U){const ct=X[it];if(ct&&ct.source===rt&&ct.type==="fill-extrusion")return!0}else for(const it in X){const ct=X[it];if(ct.source===rt&&ct.type==="fill-extrusion")return!0}return!1}(m&&m.layers,s,y.id),T=v.maxPitchScaleFactor(),P=y.tilesIn(d,T,C);P.sort($e);const R=[];for(const U of P)R.push({wrappedTileID:U.tileID.wrapped().key,queryResults:U.tile.queryRenderedFeatures(s,f,y._state,U.queryGeometry,U.cameraQueryGeometry,U.scale,m,v,T,ie(y.transform,U.tileID))});const B=function(U){const X={},rt={};for(const it of U){const ct=it.queryResults,tt=it.wrappedTileID,wt=rt[tt]=rt[tt]||{};for(const zt in ct){const ht=ct[zt],Mt=wt[zt]=wt[zt]||{},Ft=X[zt]=X[zt]||[];for(const Ut of ht)Mt[Ut.featureIndex]||(Mt[Ut.featureIndex]=!0,Ft.push(Ut))}}return X}(R);for(const U in B)B[U].forEach(X=>{const rt=X.feature,it=y.getFeatureState(rt.layer["source-layer"],rt.id);rt.source=rt.layer.source,rt.layer["source-layer"]&&(rt.sourceLayer=rt.layer["source-layer"]),rt.state=it});return B}function $e(y,s){const f=y.tileID,d=s.tileID;return f.overscaledZ-d.overscaledZ||f.canonical.y-d.canonical.y||f.wrap-d.wrap||f.canonical.x-d.canonical.x}function Ht(y,s,f){return u._(this,void 0,void 0,function*(){let d=y;if(y.url?d=(yield u.h(s.transformRequest(y.url,"Source"),f)).data:yield E.frameAsync(f),!d)return null;const m=u.L(u.e(d,y),["tiles","minzoom","maxzoom","attribution","bounds","scheme","tileSize","encoding"]);return"vector_layers"in d&&d.vector_layers&&(m.vectorLayerIds=d.vector_layers.map(v=>v.id)),m})}class Nt{constructor(s,f){s&&(f?this.setSouthWest(s).setNorthEast(f):Array.isArray(s)&&(s.length===4?this.setSouthWest([s[0],s[1]]).setNorthEast([s[2],s[3]]):this.setSouthWest(s[0]).setNorthEast(s[1])))}setNorthEast(s){return this._ne=s instanceof u.M?new u.M(s.lng,s.lat):u.M.convert(s),this}setSouthWest(s){return this._sw=s instanceof u.M?new u.M(s.lng,s.lat):u.M.convert(s),this}extend(s){const f=this._sw,d=this._ne;let m,v;if(s instanceof u.M)m=s,v=s;else{if(!(s instanceof Nt))return Array.isArray(s)?s.length===4||s.every(Array.isArray)?this.extend(Nt.convert(s)):this.extend(u.M.convert(s)):s&&("lng"in s||"lon"in s)&&"lat"in s?this.extend(u.M.convert(s)):this;if(m=s._sw,v=s._ne,!m||!v)return this}return f||d?(f.lng=Math.min(m.lng,f.lng),f.lat=Math.min(m.lat,f.lat),d.lng=Math.max(v.lng,d.lng),d.lat=Math.max(v.lat,d.lat)):(this._sw=new u.M(m.lng,m.lat),this._ne=new u.M(v.lng,v.lat)),this}getCenter(){return new u.M((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 u.M(this.getWest(),this.getNorth())}getSouthEast(){return new u.M(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(s){const{lng:f,lat:d}=u.M.convert(s);let m=this._sw.lng<=f&&f<=this._ne.lng;return this._sw.lng>this._ne.lng&&(m=this._sw.lng>=f&&f>=this._ne.lng),this._sw.lat<=d&&d<=this._ne.lat&&m}static convert(s){return s instanceof Nt?s:s&&new Nt(s)}static fromLngLat(s,f=0){const d=360*f/40075017,m=d/Math.cos(Math.PI/180*s.lat);return new Nt(new u.M(s.lng-m,s.lat-d),new u.M(s.lng+m,s.lat+d))}}class Ee{constructor(s,f,d){this.bounds=Nt.convert(this.validateBounds(s)),this.minzoom=f||0,this.maxzoom=d||24}validateBounds(s){return Array.isArray(s)&&s.length===4?[Math.max(-180,s[0]),Math.max(-90,s[1]),Math.min(180,s[2]),Math.min(90,s[3])]:[-180,-90,180,90]}contains(s){const f=Math.pow(2,s.z),d=Math.floor(u.N(this.bounds.getWest())*f),m=Math.floor(u.O(this.bounds.getNorth())*f),v=Math.ceil(u.N(this.bounds.getEast())*f),C=Math.ceil(u.O(this.bounds.getSouth())*f);return s.x>=d&&s.x=m&&s.y{this._options.tiles=s}),this}setUrl(s){return this.setSourceProperty(()=>{this.url=s,this._options.url=s}),this}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}serialize(){return u.e({},this._options)}loadTile(s){return u._(this,void 0,void 0,function*(){const f=s.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),d={request:this.map._requestManager.transformRequest(f,"Tile"),uid:s.uid,tileID:s.tileID,zoom:s.tileID.overscaledZ,tileSize:this.tileSize*s.tileID.overscaleFactor(),type:this.type,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};d.request.collectResourceTiming=this._collectResourceTiming;let m="RT";if(s.actor&&s.state!=="expired"){if(s.state==="loading")return new Promise((v,C)=>{s.reloadPromise={resolve:v,reject:C}})}else s.actor=this.dispatcher.getActor(),m="LT";s.abortController=new AbortController;try{const v=yield s.actor.sendAsync({type:m,data:d},s.abortController);if(delete s.abortController,s.aborted)return;this._afterTileLoadWorkerResponse(s,v)}catch(v){if(delete s.abortController,s.aborted)return;if(v&&v.status!==404)throw v;this._afterTileLoadWorkerResponse(s,null)}})}_afterTileLoadWorkerResponse(s,f){if(f&&f.resourceTiming&&(s.resourceTiming=f.resourceTiming),f&&this.map._refreshExpiredTiles&&s.setExpiryData(f),s.loadVectorData(f,this.map.painter),s.reloadPromise){const d=s.reloadPromise;s.reloadPromise=null,this.loadTile(s).then(d.resolve).catch(d.reject)}}abortTile(s){return u._(this,void 0,void 0,function*(){s.abortController&&(s.abortController.abort(),delete s.abortController),s.actor&&(yield s.actor.sendAsync({type:"AT",data:{uid:s.uid,type:this.type,source:this.id}}))})}unloadTile(s){return u._(this,void 0,void 0,function*(){s.unloadVectorData(),s.actor&&(yield s.actor.sendAsync({type:"RMT",data:{uid:s.uid,type:this.type,source:this.id}}))})}hasTransition(){return!1}}class Bt extends u.E{constructor(s,f,d,m){super(),this.id=s,this.dispatcher=d,this.setEventedParent(m),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=u.e({type:"raster"},f),u.e(this,u.L(f,["url","scheme","tileSize"]))}load(){return u._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new u.k("dataloading",{dataType:"source"})),this._tileJSONRequest=new AbortController;try{const s=yield Ht(this._options,this.map._requestManager,this._tileJSONRequest);this._tileJSONRequest=null,this._loaded=!0,s&&(u.e(this,s),s.bounds&&(this.tileBounds=new Ee(s.bounds,this.minzoom,this.maxzoom)),this.fire(new u.k("data",{dataType:"source",sourceDataType:"metadata"})),this.fire(new u.k("data",{dataType:"source",sourceDataType:"content"})))}catch(s){this._tileJSONRequest=null,this.fire(new u.j(s))}})}loaded(){return this._loaded}onAdd(s){this.map=s,this.load()}onRemove(){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null)}setSourceProperty(s){this._tileJSONRequest&&(this._tileJSONRequest.abort(),this._tileJSONRequest=null),s(),this.load()}setTiles(s){return this.setSourceProperty(()=>{this._options.tiles=s}),this}setUrl(s){return this.setSourceProperty(()=>{this.url=s,this._options.url=s}),this}serialize(){return u.e({},this._options)}hasTile(s){return!this.tileBounds||this.tileBounds.contains(s.canonical)}loadTile(s){return u._(this,void 0,void 0,function*(){const f=s.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme);s.abortController=new AbortController;try{const d=yield Z.getImage(this.map._requestManager.transformRequest(f,"Tile"),s.abortController,this.map._refreshExpiredTiles);if(delete s.abortController,s.aborted)return void(s.state="unloaded");if(d&&d.data){this.map._refreshExpiredTiles&&d.cacheControl&&d.expires&&s.setExpiryData({cacheControl:d.cacheControl,expires:d.expires});const m=this.map.painter.context,v=m.gl,C=d.data;s.texture=this.map.painter.getTileTexture(C.width),s.texture?s.texture.update(C,{useMipmap:!0}):(s.texture=new mt(m,C,v.RGBA,{useMipmap:!0}),s.texture.bind(v.LINEAR,v.CLAMP_TO_EDGE,v.LINEAR_MIPMAP_NEAREST),m.extTextureFilterAnisotropic&&v.texParameterf(v.TEXTURE_2D,m.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,m.extTextureFilterAnisotropicMax)),s.state="loaded"}}catch(d){if(delete s.abortController,s.aborted)s.state="unloaded";else if(d)throw s.state="errored",d}})}abortTile(s){return u._(this,void 0,void 0,function*(){s.abortController&&(s.abortController.abort(),delete s.abortController)})}unloadTile(s){return u._(this,void 0,void 0,function*(){s.texture&&this.map.painter.saveTileTexture(s.texture)})}hasTransition(){return!1}}class wn extends Bt{constructor(s,f,d,m){super(s,f,d,m),this.type="raster-dem",this.maxzoom=22,this._options=u.e({type:"raster-dem"},f),this.encoding=f.encoding||"mapbox",this.redFactor=f.redFactor,this.greenFactor=f.greenFactor,this.blueFactor=f.blueFactor,this.baseShift=f.baseShift}loadTile(s){return u._(this,void 0,void 0,function*(){const f=s.tileID.canonical.url(this.tiles,this.map.getPixelRatio(),this.scheme),d=this.map._requestManager.transformRequest(f,"Tile");s.neighboringTiles=this._getNeighboringTiles(s.tileID),s.abortController=new AbortController;try{const m=yield Z.getImage(d,s.abortController,this.map._refreshExpiredTiles);if(delete s.abortController,s.aborted)return void(s.state="unloaded");if(m&&m.data){const v=m.data;this.map._refreshExpiredTiles&&m.cacheControl&&m.expires&&s.setExpiryData({cacheControl:m.cacheControl,expires:m.expires});const C=u.b(v)&&u.S()?v:yield this.readImageNow(v),T={type:this.type,uid:s.uid,source:this.id,rawImageData:C,encoding:this.encoding,redFactor:this.redFactor,greenFactor:this.greenFactor,blueFactor:this.blueFactor,baseShift:this.baseShift};if(!s.actor||s.state==="expired"){s.actor=this.dispatcher.getActor();const P=yield s.actor.sendAsync({type:"LDT",data:T});s.dem=P,s.needsHillshadePrepare=!0,s.needsTerrainPrepare=!0,s.state="loaded"}}}catch(m){if(delete s.abortController,s.aborted)s.state="unloaded";else if(m)throw s.state="errored",m}})}readImageNow(s){return u._(this,void 0,void 0,function*(){if(typeof VideoFrame<"u"&&u.U()){const f=s.width+2,d=s.height+2;try{return new u.R({width:f,height:d},yield u.V(s,-1,-1,f,d))}catch{}}return E.getImageData(s,1)})}_getNeighboringTiles(s){const f=s.canonical,d=Math.pow(2,f.z),m=(f.x-1+d)%d,v=f.x===0?s.wrap-1:s.wrap,C=(f.x+1+d)%d,T=f.x+1===d?s.wrap+1:s.wrap,P={};return P[new u.Q(s.overscaledZ,v,f.z,m,f.y).key]={backfilled:!1},P[new u.Q(s.overscaledZ,T,f.z,C,f.y).key]={backfilled:!1},f.y>0&&(P[new u.Q(s.overscaledZ,v,f.z,m,f.y-1).key]={backfilled:!1},P[new u.Q(s.overscaledZ,s.wrap,f.z,f.x,f.y-1).key]={backfilled:!1},P[new u.Q(s.overscaledZ,T,f.z,C,f.y-1).key]={backfilled:!1}),f.y+10&&u.e(v,{resourceTiming:m}),this.fire(new u.k("data",Object.assign(Object.assign({},v),{sourceDataType:"metadata"}))),this.fire(new u.k("data",Object.assign(Object.assign({},v),{sourceDataType:"content"})))}catch(d){if(this._pendingLoads--,this._removed)return void this.fire(new u.k("dataabort",{dataType:"source"}));this.fire(new u.j(d))}})}loaded(){return this._pendingLoads===0}loadTile(s){return u._(this,void 0,void 0,function*(){const f=s.actor?"RT":"LT";s.actor=this.actor;const d={type:this.type,uid:s.uid,tileID:s.tileID,zoom:s.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:this.map.getPixelRatio(),showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};s.abortController=new AbortController;const m=yield this.actor.sendAsync({type:f,data:d},s.abortController);delete s.abortController,s.unloadVectorData(),s.aborted||s.loadVectorData(m,this.map.painter,f==="RT")})}abortTile(s){return u._(this,void 0,void 0,function*(){s.abortController&&(s.abortController.abort(),delete s.abortController),s.aborted=!0})}unloadTile(s){return u._(this,void 0,void 0,function*(){s.unloadVectorData(),yield this.actor.sendAsync({type:"RMT",data:{uid:s.uid,type:this.type,source:this.id}})})}onRemove(){this._removed=!0,this.actor.sendAsync({type:"RS",data:{type:this.type,source:this.id}})}serialize(){return u.e({},this._options,{type:this.type,data:this._data})}hasTransition(){return!1}}var gn=u.X([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]);class si extends u.E{constructor(s,f,d,m){super(),this.id=s,this.dispatcher=d,this.coordinates=f.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(m),this.options=f}load(s){return u._(this,void 0,void 0,function*(){this._loaded=!1,this.fire(new u.k("dataloading",{dataType:"source"})),this.url=this.options.url,this._request=new AbortController;try{const f=yield Z.getImage(this.map._requestManager.transformRequest(this.url,"Image"),this._request);this._request=null,this._loaded=!0,f&&f.data&&(this.image=f.data,s&&(this.coordinates=s),this._finishLoading())}catch(f){this._request=null,this._loaded=!0,this.fire(new u.j(f))}})}loaded(){return this._loaded}updateImage(s){return s.url?(this._request&&(this._request.abort(),this._request=null),this.options.url=s.url,this.load(s.coordinates).finally(()=>{this.texture=null}),this):this}_finishLoading(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new u.k("data",{dataType:"source",sourceDataType:"metadata"})))}onAdd(s){this.map=s,this.load()}onRemove(){this._request&&(this._request.abort(),this._request=null)}setCoordinates(s){this.coordinates=s;const f=s.map(u.Y.fromLngLat);this.tileID=function(m){let v=1/0,C=1/0,T=-1/0,P=-1/0;for(const X of m)v=Math.min(v,X.x),C=Math.min(C,X.y),T=Math.max(T,X.x),P=Math.max(P,X.y);const R=Math.max(T-v,P-C),B=Math.max(0,Math.floor(-Math.log(R)/Math.LN2)),U=Math.pow(2,B);return new u.a0(B,Math.floor((v+T)/2*U),Math.floor((C+P)/2*U))}(f),this.minzoom=this.maxzoom=this.tileID.z;const d=f.map(m=>this.tileID.getTilePoint(m)._round());return this._boundsArray=new u.Z,this._boundsArray.emplaceBack(d[0].x,d[0].y,0,0),this._boundsArray.emplaceBack(d[1].x,d[1].y,u.W,0),this._boundsArray.emplaceBack(d[3].x,d[3].y,0,u.W),this._boundsArray.emplaceBack(d[2].x,d[2].y,u.W,u.W),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new u.k("data",{dataType:"source",sourceDataType:"content"})),this}prepare(){if(Object.keys(this.tiles).length===0||!this.image)return;const s=this.map.painter.context,f=s.gl;this.boundsBuffer||(this.boundsBuffer=s.createVertexBuffer(this._boundsArray,gn.members)),this.boundsSegments||(this.boundsSegments=u.$.simpleSegment(0,0,4,2)),this.texture||(this.texture=new mt(s,this.image,f.RGBA),this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE));let d=!1;for(const m in this.tiles){const v=this.tiles[m];v.state!=="loaded"&&(v.state="loaded",v.texture=this.texture,d=!0)}d&&this.fire(new u.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}loadTile(s){return u._(this,void 0,void 0,function*(){this.tileID&&this.tileID.equals(s.tileID.canonical)?(this.tiles[String(s.tileID.wrap)]=s,s.buckets={}):s.state="errored"})}serialize(){return{type:"image",url:this.options.url,coordinates:this.coordinates}}hasTransition(){return!1}}class Do extends si{constructor(s,f,d,m){super(s,f,d,m),this.roundZoom=!0,this.type="video",this.options=f}load(){return u._(this,void 0,void 0,function*(){this._loaded=!1;const s=this.options;this.urls=[];for(const f of s.urls)this.urls.push(this.map._requestManager.transformRequest(f,"Source").url);try{const f=yield u.a2(this.urls);if(this._loaded=!0,!f)return;this.video=f,this.video.loop=!0,this.video.addEventListener("playing",()=>{this.map.triggerRepaint()}),this.map&&this.video.play(),this._finishLoading()}catch(f){this.fire(new u.j(f))}})}pause(){this.video&&this.video.pause()}play(){this.video&&this.video.play()}seek(s){if(this.video){const f=this.video.seekable;sf.end(0)?this.fire(new u.j(new u.a1(`sources.${this.id}`,null,`Playback for this video can be set only between the ${f.start(0)} and ${f.end(0)}-second mark.`))):this.video.currentTime=s}}getVideo(){return this.video}onAdd(s){this.map||(this.map=s,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))}prepare(){if(Object.keys(this.tiles).length===0||this.video.readyState<2)return;const s=this.map.painter.context,f=s.gl;this.boundsBuffer||(this.boundsBuffer=s.createVertexBuffer(this._boundsArray,gn.members)),this.boundsSegments||(this.boundsSegments=u.$.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE),f.texSubImage2D(f.TEXTURE_2D,0,0,0,f.RGBA,f.UNSIGNED_BYTE,this.video)):(this.texture=new mt(s,this.video,f.RGBA),this.texture.bind(f.LINEAR,f.CLAMP_TO_EDGE));let d=!1;for(const m in this.tiles){const v=this.tiles[m];v.state!=="loaded"&&(v.state="loaded",v.texture=this.texture,d=!0)}d&&this.fire(new u.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"video",urls:this.urls,coordinates:this.coordinates}}hasTransition(){return this.video&&!this.video.paused}}class vs extends si{constructor(s,f,d,m){super(s,f,d,m),f.coordinates?Array.isArray(f.coordinates)&&f.coordinates.length===4&&!f.coordinates.some(v=>!Array.isArray(v)||v.length!==2||v.some(C=>typeof C!="number"))||this.fire(new u.j(new u.a1(`sources.${s}`,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new u.j(new u.a1(`sources.${s}`,null,'missing required property "coordinates"'))),f.animate&&typeof f.animate!="boolean"&&this.fire(new u.j(new u.a1(`sources.${s}`,null,'optional "animate" property must be a boolean value'))),f.canvas?typeof f.canvas=="string"||f.canvas instanceof HTMLCanvasElement||this.fire(new u.j(new u.a1(`sources.${s}`,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 u.j(new u.a1(`sources.${s}`,null,'missing required property "canvas"'))),this.options=f,this.animate=f.animate===void 0||f.animate}load(){return u._(this,void 0,void 0,function*(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof HTMLCanvasElement?this.options.canvas:document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new u.j(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())})}getCanvas(){return this.canvas}onAdd(s){this.map=s,this.load(),this.canvas&&this.animate&&this.play()}onRemove(){this.pause()}prepare(){let s=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,s=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,s=!0),this._hasInvalidDimensions()||Object.keys(this.tiles).length===0)return;const f=this.map.painter.context,d=f.gl;this.boundsBuffer||(this.boundsBuffer=f.createVertexBuffer(this._boundsArray,gn.members)),this.boundsSegments||(this.boundsSegments=u.$.simpleSegment(0,0,4,2)),this.texture?(s||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new mt(f,this.canvas,d.RGBA,{premultiply:!0});let m=!1;for(const v in this.tiles){const C=this.tiles[v];C.state!=="loaded"&&(C.state="loaded",C.texture=this.texture,m=!0)}m&&this.fire(new u.k("data",{dataType:"source",sourceDataType:"idle",sourceId:this.id}))}serialize(){return{type:"canvas",coordinates:this.coordinates}}hasTransition(){return this._playing}_hasInvalidDimensions(){for(const s of[this.canvas.width,this.canvas.height])if(isNaN(s)||s<=0)return!0;return!1}}const Gs={},ja=y=>{switch(y){case"geojson":return cr;case"image":return si;case"raster":return Bt;case"raster-dem":return wn;case"vector":return bi;case"video":return Do;case"canvas":return vs}return Gs[y]},Dr="RTLPluginLoaded";class yl extends u.E{constructor(){super(...arguments),this.status="unavailable",this.url=null,this.dispatcher=$n()}_syncState(s){return this.status=s,this.dispatcher.broadcast("SRPS",{pluginStatus:s,pluginURL:this.url}).catch(f=>{throw this.status="error",f})}getRTLTextPluginStatus(){return this.status}clearRTLTextPlugin(){this.status="unavailable",this.url=null}setRTLTextPlugin(s){return u._(this,arguments,void 0,function*(f,d=!1){if(this.url)throw new Error("setRTLTextPlugin cannot be called multiple times.");if(this.url=E.resolveURL(f),!this.url)throw new Error(`requested url ${f} is invalid`);if(this.status==="unavailable"){if(!d)return this._requestImport();this.status="deferred",this._syncState(this.status)}else if(this.status==="requested")return this._requestImport()})}_requestImport(){return u._(this,void 0,void 0,function*(){yield this._syncState("loading"),this.status="loaded",this.fire(new u.k(Dr))})}lazyLoad(){this.status==="unavailable"?this.status="requested":this.status==="deferred"&&this._requestImport()}}let bs=null;function se(){return bs||(bs=new yl),bs}class ns{constructor(s,f){this.timeAdded=0,this.fadeEndTime=0,this.tileID=s,this.uid=u.a3(),this.uses=0,this.tileSize=f,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.rtt=[],this.rttCoords={},this.expiredRequestCount=0,this.state="loading"}registerFadeDuration(s){const f=s+this.timeAdded;fv.getLayer(R)).filter(Boolean);if(P.length!==0){T.layers=P,T.stateDependentLayerIds&&(T.stateDependentLayers=T.stateDependentLayerIds.map(R=>P.filter(B=>B.id===R)[0]));for(const R of P)C[R.id]=T}}return C}(s.buckets,f.style),this.hasSymbolBuckets=!1;for(const m in this.buckets){const v=this.buckets[m];if(v instanceof u.a5){if(this.hasSymbolBuckets=!0,!d)break;v.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(const m in this.buckets){const v=this.buckets[m];if(v instanceof u.a5&&v.hasRTLText){this.hasRTLText=!0,se().lazyLoad();break}}this.queryPadding=0;for(const m in this.buckets){const v=this.buckets[m];this.queryPadding=Math.max(this.queryPadding,f.style.getLayer(m).queryRadius(v))}s.imageAtlas&&(this.imageAtlas=s.imageAtlas),s.glyphAtlasImage&&(this.glyphAtlasImage=s.glyphAtlasImage)}else this.collisionBoxArray=new u.a4}unloadVectorData(){for(const s in this.buckets)this.buckets[s].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"}getBucket(s){return this.buckets[s.id]}upload(s){for(const d in this.buckets){const m=this.buckets[d];m.uploadPending()&&m.upload(s)}const f=s.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new mt(s,this.imageAtlas.image,f.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new mt(s,this.glyphAtlasImage,f.ALPHA),this.glyphAtlasImage=null)}prepare(s){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(s,this.imageAtlasTexture)}queryRenderedFeatures(s,f,d,m,v,C,T,P,R,B){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:m,cameraQueryGeometry:v,scale:C,tileSize:this.tileSize,pixelPosMatrix:B,transform:P,params:T,queryPadding:this.queryPadding*R},s,f,d):{}}querySourceFeatures(s,f){const d=this.latestFeatureIndex;if(!d||!d.rawTileData)return;const m=d.loadVTLayers(),v=f&&f.sourceLayer?f.sourceLayer:"",C=m._geojsonTileLayer||m[v];if(!C)return;const T=u.a6(f&&f.filter),{z:P,x:R,y:B}=this.tileID.canonical,U={z:P,x:R,y:B};for(let X=0;Xd)m=!1;else if(f)if(this.expirationTime{this.remove(s,v)},d)),this.data[m].push(v),this.order.push(m),this.order.length>this.max){const C=this._getAndRemoveByKey(this.order[0]);C&&this.onRemove(C)}return this}has(s){return s.wrapped().key in this.data}getAndRemove(s){return this.has(s)?this._getAndRemoveByKey(s.wrapped().key):null}_getAndRemoveByKey(s){const f=this.data[s].shift();return f.timeout&&clearTimeout(f.timeout),this.data[s].length===0&&delete this.data[s],this.order.splice(this.order.indexOf(s),1),f.value}getByKey(s){const f=this.data[s];return f?f[0].value:null}get(s){return this.has(s)?this.data[s.wrapped().key][0].value:null}remove(s,f){if(!this.has(s))return this;const d=s.wrapped().key,m=f===void 0?0:this.data[d].indexOf(f),v=this.data[d][m];return this.data[d].splice(m,1),v.timeout&&clearTimeout(v.timeout),this.data[d].length===0&&delete this.data[d],this.onRemove(v.value),this.order.splice(this.order.indexOf(d),1),this}setMaxSize(s){for(this.max=s;this.order.length>this.max;){const f=this._getAndRemoveByKey(this.order[0]);f&&this.onRemove(f)}return this}filter(s){const f=[];for(const d in this.data)for(const m of this.data[d])s(m.value)||f.push(m);for(const d of f)this.remove(d.value.tileID,d)}}class vl{constructor(){this.state={},this.stateChanges={},this.deletedStates={}}updateState(s,f,d){const m=String(f);if(this.stateChanges[s]=this.stateChanges[s]||{},this.stateChanges[s][m]=this.stateChanges[s][m]||{},u.e(this.stateChanges[s][m],d),this.deletedStates[s]===null){this.deletedStates[s]={};for(const v in this.state[s])v!==m&&(this.deletedStates[s][v]=null)}else if(this.deletedStates[s]&&this.deletedStates[s][m]===null){this.deletedStates[s][m]={};for(const v in this.state[s][m])d[v]||(this.deletedStates[s][m][v]=null)}else for(const v in d)this.deletedStates[s]&&this.deletedStates[s][m]&&this.deletedStates[s][m][v]===null&&delete this.deletedStates[s][m][v]}removeFeatureState(s,f,d){if(this.deletedStates[s]===null)return;const m=String(f);if(this.deletedStates[s]=this.deletedStates[s]||{},d&&f!==void 0)this.deletedStates[s][m]!==null&&(this.deletedStates[s][m]=this.deletedStates[s][m]||{},this.deletedStates[s][m][d]=null);else if(f!==void 0)if(this.stateChanges[s]&&this.stateChanges[s][m])for(d in this.deletedStates[s][m]={},this.stateChanges[s][m])this.deletedStates[s][m][d]=null;else this.deletedStates[s][m]=null;else this.deletedStates[s]=null}getState(s,f){const d=String(f),m=u.e({},(this.state[s]||{})[d],(this.stateChanges[s]||{})[d]);if(this.deletedStates[s]===null)return{};if(this.deletedStates[s]){const v=this.deletedStates[s][f];if(v===null)return{};for(const C in v)delete m[C]}return m}initializeTileState(s,f){s.setFeatureState(this.state,f)}coalesceChanges(s,f){const d={};for(const m in this.stateChanges){this.state[m]=this.state[m]||{};const v={};for(const C in this.stateChanges[m])this.state[m][C]||(this.state[m][C]={}),u.e(this.state[m][C],this.stateChanges[m][C]),v[C]=this.state[m][C];d[m]=v}for(const m in this.deletedStates){this.state[m]=this.state[m]||{};const v={};if(this.deletedStates[m]===null)for(const C in this.state[m])v[C]={},this.state[m][C]={};else for(const C in this.deletedStates[m]){if(this.deletedStates[m][C]===null)this.state[m][C]={};else for(const T of Object.keys(this.deletedStates[m][C]))delete this.state[m][C][T];v[C]=this.state[m][C]}d[m]=d[m]||{},u.e(d[m],v)}if(this.stateChanges={},this.deletedStates={},Object.keys(d).length!==0)for(const m in s)s[m].setFeatureState(d,f)}}class Qi extends u.E{constructor(s,f,d){super(),this.id=s,this.dispatcher=d,this.on("data",m=>this._dataHandler(m)),this.on("dataloading",()=>{this._sourceErrored=!1}),this.on("error",()=>{this._sourceErrored=this._source.loaded()}),this._source=((m,v,C,T)=>{const P=new(ja(v.type))(m,v,C,T);if(P.id!==m)throw new Error(`Expected Source id to be ${m} instead of ${P.id}`);return P})(s,f,d,this),this._tiles={},this._cache=new no(0,m=>this._unloadTile(m)),this._timers={},this._cacheTimers={},this._maxTileCacheSize=null,this._maxTileCacheZoomLevels=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new vl,this._didEmitContent=!1,this._updated=!1}onAdd(s){this.map=s,this._maxTileCacheSize=s?s._maxTileCacheSize:null,this._maxTileCacheZoomLevels=s?s._maxTileCacheZoomLevels:null,this._source&&this._source.onAdd&&this._source.onAdd(s)}onRemove(s){this.clearTiles(),this._source&&this._source.onRemove&&this._source.onRemove(s)}loaded(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;if(!(this.used===void 0&&this.usedForTerrain===void 0||this.used||this.usedForTerrain))return!0;if(!this._updated)return!1;for(const s in this._tiles){const f=this._tiles[s];if(f.state!=="loaded"&&f.state!=="errored")return!1}return!0}getSource(){return this._source}pause(){this._paused=!0}resume(){if(!this._paused)return;const s=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,s&&this.reload(),this.transform&&this.update(this.transform,this.terrain)}_loadTile(s,f,d){return u._(this,void 0,void 0,function*(){try{yield this._source.loadTile(s),this._tileLoaded(s,f,d)}catch(m){s.state="errored",m.status!==404?this._source.fire(new u.j(m,{tile:s})):this.update(this.transform,this.terrain)}})}_unloadTile(s){this._source.unloadTile&&this._source.unloadTile(s)}_abortTile(s){this._source.abortTile&&this._source.abortTile(s),this._source.fire(new u.k("dataabort",{tile:s,coord:s.tileID,dataType:"source"}))}serialize(){return this._source.serialize()}prepare(s){this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null);for(const f in this._tiles){const d=this._tiles[f];d.upload(s),d.prepare(this.map.style.imageManager)}}getIds(){return Object.values(this._tiles).map(s=>s.tileID).sort(fe).map(s=>s.key)}getRenderableIds(s){const f=[];for(const d in this._tiles)this._isIdRenderable(d,s)&&f.push(this._tiles[d]);return s?f.sort((d,m)=>{const v=d.tileID,C=m.tileID,T=new u.P(v.canonical.x,v.canonical.y)._rotate(this.transform.angle),P=new u.P(C.canonical.x,C.canonical.y)._rotate(this.transform.angle);return v.overscaledZ-C.overscaledZ||P.y-T.y||P.x-T.x}).map(d=>d.tileID.key):f.map(d=>d.tileID).sort(fe).map(d=>d.key)}hasRenderableParent(s){const f=this.findLoadedParent(s,0);return!!f&&this._isIdRenderable(f.tileID.key)}_isIdRenderable(s,f){return this._tiles[s]&&this._tiles[s].hasData()&&!this._coveredTiles[s]&&(f||!this._tiles[s].holdingForFade())}reload(){if(this._paused)this._shouldReloadOnResume=!0;else{this._cache.reset();for(const s in this._tiles)this._tiles[s].state!=="errored"&&this._reloadTile(s,"reloading")}}_reloadTile(s,f){return u._(this,void 0,void 0,function*(){const d=this._tiles[s];d&&(d.state!=="loading"&&(d.state=f),yield this._loadTile(d,s,f))})}_tileLoaded(s,f,d){s.timeAdded=E.now(),d==="expired"&&(s.refreshedUponExpiration=!0),this._setTileReloadTimer(f,s),this.getSource().type==="raster-dem"&&s.dem&&this._backfillDEM(s),this._state.initializeTileState(s,this.map?this.map.painter:null),s.aborted||this._source.fire(new u.k("data",{dataType:"source",tile:s,coord:s.tileID}))}_backfillDEM(s){const f=this.getRenderableIds();for(let m=0;m1||(Math.abs(C)>1&&(Math.abs(C+P)===1?C+=P:Math.abs(C-P)===1&&(C-=P)),v.dem&&m.dem&&(m.dem.backfillBorder(v.dem,C,T),m.neighboringTiles&&m.neighboringTiles[R]&&(m.neighboringTiles[R].backfilled=!0)))}}getTile(s){return this.getTileByID(s.key)}getTileByID(s){return this._tiles[s]}_retainLoadedChildren(s,f,d,m){for(const v in this._tiles){let C=this._tiles[v];if(m[v]||!C.hasData()||C.tileID.overscaledZ<=f||C.tileID.overscaledZ>d)continue;let T=C.tileID;for(;C&&C.tileID.overscaledZ>f+1;){const R=C.tileID.scaledTo(C.tileID.overscaledZ-1);C=this._tiles[R.key],C&&C.hasData()&&(T=R)}let P=T;for(;P.overscaledZ>f;)if(P=P.scaledTo(P.overscaledZ-1),s[P.key]){m[T.key]=T;break}}}findLoadedParent(s,f){if(s.key in this._loadedParentTiles){const d=this._loadedParentTiles[s.key];return d&&d.tileID.overscaledZ>=f?d:null}for(let d=s.overscaledZ-1;d>=f;d--){const m=s.scaledTo(d),v=this._getLoadedTile(m);if(v)return v}}_getLoadedTile(s){const f=this._tiles[s.key];return f&&f.hasData()?f:this._cache.getByKey(s.wrapped().key)}updateCacheSize(s){const f=Math.ceil(s.width/this._source.tileSize)+1,d=Math.ceil(s.height/this._source.tileSize)+1,m=Math.floor(f*d*(this._maxTileCacheZoomLevels===null?u.a.MAX_TILE_CACHE_ZOOM_LEVELS:this._maxTileCacheZoomLevels)),v=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,m):m;this._cache.setMaxSize(v)}handleWrapJump(s){const f=Math.round((s-(this._prevLng===void 0?s:this._prevLng))/360);if(this._prevLng=s,f){const d={};for(const m in this._tiles){const v=this._tiles[m];v.tileID=v.tileID.unwrapTo(v.tileID.wrap+f),d[v.tileID.key]=v}this._tiles=d;for(const m in this._timers)clearTimeout(this._timers[m]),delete this._timers[m];for(const m in this._tiles)this._setTileReloadTimer(m,this._tiles[m])}}update(s,f){if(!this._sourceLoaded||this._paused)return;let d;this.transform=s,this.terrain=f,this.updateCacheSize(s),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used||this.usedForTerrain?this._source.tileID?d=s.getVisibleUnwrappedCoordinates(this._source.tileID).map(B=>new u.Q(B.canonical.z,B.wrap,B.canonical.z,B.canonical.x,B.canonical.y)):(d=s.coveringTiles({tileSize:this.usedForTerrain?this.tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:!this.usedForTerrain&&this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled,terrain:f}),this._source.hasTile&&(d=d.filter(B=>this._source.hasTile(B)))):d=[];const m=s.coveringZoomLevel(this._source),v=Math.max(m-Qi.maxOverzooming,this._source.minzoom),C=Math.max(m+Qi.maxUnderzooming,this._source.minzoom);if(this.usedForTerrain){const B={};for(const U of d)if(U.canonical.z>this._source.minzoom){const X=U.scaledTo(U.canonical.z-1);B[X.key]=X;const rt=U.scaledTo(Math.max(this._source.minzoom,Math.min(U.canonical.z,5)));B[rt.key]=rt}d=d.concat(Object.values(B))}const T=d.length===0&&!this._updated&&this._didEmitContent;this._updated=!0,T&&this.fire(new u.k("data",{sourceDataType:"idle",dataType:"source",sourceId:this.id}));const P=this._updateRetainedTiles(d,m);if(un(this._source.type)){const B={},U={},X=Object.keys(P),rt=E.now();for(const it of X){const ct=P[it],tt=this._tiles[it];if(!tt||tt.fadeEndTime!==0&&tt.fadeEndTime<=rt)continue;const wt=this.findLoadedParent(ct,v);wt&&(this._addTile(wt.tileID),B[wt.tileID.key]=wt.tileID),U[it]=ct}this._retainLoadedChildren(U,m,C,P);for(const it in B)P[it]||(this._coveredTiles[it]=!0,P[it]=B[it]);if(f){const it={},ct={};for(const tt of d)this._tiles[tt.key].hasData()?it[tt.key]=tt:ct[tt.key]=tt;for(const tt in ct){const wt=ct[tt].children(this._source.maxzoom);this._tiles[wt[0].key]&&this._tiles[wt[1].key]&&this._tiles[wt[2].key]&&this._tiles[wt[3].key]&&(it[wt[0].key]=P[wt[0].key]=wt[0],it[wt[1].key]=P[wt[1].key]=wt[1],it[wt[2].key]=P[wt[2].key]=wt[2],it[wt[3].key]=P[wt[3].key]=wt[3],delete ct[tt])}for(const tt in ct){const wt=this.findLoadedParent(ct[tt],this._source.minzoom);if(wt){it[wt.tileID.key]=P[wt.tileID.key]=wt.tileID;for(const zt in it)it[zt].isChildOf(wt.tileID)&&delete it[zt]}}for(const tt in this._tiles)it[tt]||(this._coveredTiles[tt]=!0)}}for(const B in P)this._tiles[B].clearFadeHold();const R=u.ab(this._tiles,P);for(const B of R){const U=this._tiles[B];U.hasSymbolBuckets&&!U.holdingForFade()?U.setHoldDuration(this.map._fadeDuration):U.hasSymbolBuckets&&!U.symbolFadeFinished()||this._removeTile(B)}this._updateLoadedParentTileCache()}releaseSymbolFadeTiles(){for(const s in this._tiles)this._tiles[s].holdingForFade()&&this._removeTile(s)}_updateRetainedTiles(s,f){const d={},m={},v=Math.max(f-Qi.maxOverzooming,this._source.minzoom),C=Math.max(f+Qi.maxUnderzooming,this._source.minzoom),T={};for(const P of s){const R=this._addTile(P);d[P.key]=P,R.hasData()||fthis._source.maxzoom){const U=P.children(this._source.maxzoom)[0],X=this.getTile(U);if(X&&X.hasData()){d[U.key]=U;continue}}else{const U=P.children(this._source.maxzoom);if(d[U[0].key]&&d[U[1].key]&&d[U[2].key]&&d[U[3].key])continue}let B=R.wasRequested();for(let U=P.overscaledZ-1;U>=v;--U){const X=P.scaledTo(U);if(m[X.key])break;if(m[X.key]=!0,R=this.getTile(X),!R&&B&&(R=this._addTile(X)),R){const rt=R.hasData();if((B||rt)&&(d[X.key]=X),B=R.wasRequested(),rt)break}}}return d}_updateLoadedParentTileCache(){this._loadedParentTiles={};for(const s in this._tiles){const f=[];let d,m=this._tiles[s].tileID;for(;m.overscaledZ>0;){if(m.key in this._loadedParentTiles){d=this._loadedParentTiles[m.key];break}f.push(m.key);const v=m.scaledTo(m.overscaledZ-1);if(d=this._getLoadedTile(v),d)break;m=v}for(const v of f)this._loadedParentTiles[v]=d}}_addTile(s){let f=this._tiles[s.key];if(f)return f;f=this._cache.getAndRemove(s),f&&(this._setTileReloadTimer(s.key,f),f.tileID=s,this._state.initializeTileState(f,this.map?this.map.painter:null),this._cacheTimers[s.key]&&(clearTimeout(this._cacheTimers[s.key]),delete this._cacheTimers[s.key],this._setTileReloadTimer(s.key,f)));const d=f;return f||(f=new ns(s,this._source.tileSize*s.overscaleFactor()),this._loadTile(f,s.key,f.state)),f.uses++,this._tiles[s.key]=f,d||this._source.fire(new u.k("dataloading",{tile:f,coord:f.tileID,dataType:"source"})),f}_setTileReloadTimer(s,f){s in this._timers&&(clearTimeout(this._timers[s]),delete this._timers[s]);const d=f.getExpiryTimeout();d&&(this._timers[s]=setTimeout(()=>{this._reloadTile(s,"expired"),delete this._timers[s]},d))}_removeTile(s){const f=this._tiles[s];f&&(f.uses--,delete this._tiles[s],this._timers[s]&&(clearTimeout(this._timers[s]),delete this._timers[s]),f.uses>0||(f.hasData()&&f.state!=="reloading"?this._cache.add(f.tileID,f,f.getExpiryTimeout()):(f.aborted=!0,this._abortTile(f),this._unloadTile(f))))}_dataHandler(s){const f=s.sourceDataType;s.dataType==="source"&&f==="metadata"&&(this._sourceLoaded=!0),this._sourceLoaded&&!this._paused&&s.dataType==="source"&&f==="content"&&(this.reload(),this.transform&&this.update(this.transform,this.terrain),this._didEmitContent=!0)}clearTiles(){this._shouldReloadOnResume=!1,this._paused=!1;for(const s in this._tiles)this._removeTile(s);this._cache.reset()}tilesIn(s,f,d){const m=[],v=this.transform;if(!v)return m;const C=d?v.getCameraQueryGeometry(s):s,T=s.map(it=>v.pointCoordinate(it,this.terrain)),P=C.map(it=>v.pointCoordinate(it,this.terrain)),R=this.getIds();let B=1/0,U=1/0,X=-1/0,rt=-1/0;for(const it of P)B=Math.min(B,it.x),U=Math.min(U,it.y),X=Math.max(X,it.x),rt=Math.max(rt,it.y);for(let it=0;it=0&&ht[1].y+zt>=0){const Mt=T.map(Ut=>tt.getTilePoint(Ut)),Ft=P.map(Ut=>tt.getTilePoint(Ut));m.push({tile:ct,tileID:tt,queryGeometry:Mt,cameraQueryGeometry:Ft,scale:wt})}}return m}getVisibleCoordinates(s){const f=this.getRenderableIds(s).map(d=>this._tiles[d].tileID);for(const d of f)d.posMatrix=this.transform.calculatePosMatrix(d.toUnwrapped());return f}hasTransition(){if(this._source.hasTransition())return!0;if(un(this._source.type)){const s=E.now();for(const f in this._tiles)if(this._tiles[f].fadeEndTime>=s)return!0}return!1}setFeatureState(s,f,d){this._state.updateState(s=s||"_geojsonTileLayer",f,d)}removeFeatureState(s,f,d){this._state.removeFeatureState(s=s||"_geojsonTileLayer",f,d)}getFeatureState(s,f){return this._state.getState(s=s||"_geojsonTileLayer",f)}setDependencies(s,f,d){const m=this._tiles[s];m&&m.setDependencies(f,d)}reloadTilesForDependencies(s,f){for(const d in this._tiles)this._tiles[d].hasDependency(s,f)&&this._reloadTile(d,"reloading");this._cache.filter(d=>!d.hasDependency(s,f))}}function fe(y,s){const f=Math.abs(2*y.wrap)-+(y.wrap<0),d=Math.abs(2*s.wrap)-+(s.wrap<0);return y.overscaledZ-s.overscaledZ||d-f||s.canonical.y-y.canonical.y||s.canonical.x-y.canonical.x}function un(y){return y==="raster"||y==="image"||y==="video"}Qi.maxOverzooming=10,Qi.maxUnderzooming=3;class an{constructor(s,f){this.reset(s,f)}reset(s,f){this.points=s||[],this._distances=[0];for(let d=1;d0?(m-C)/T:0;return this.points[v].mult(1-P).add(this.points[f].mult(P))}}function Fi(y,s){let f=!0;return y==="always"||y!=="never"&&s!=="never"||(f=!1),f}class is{constructor(s,f,d){const m=this.boxCells=[],v=this.circleCells=[];this.xCellCount=Math.ceil(s/d),this.yCellCount=Math.ceil(f/d);for(let C=0;Cthis.width||m<0||f>this.height)return[];const P=[];if(s<=0&&f<=0&&this.width<=d&&this.height<=m){if(v)return[{key:null,x1:s,y1:f,x2:d,y2:m}];for(let R=0;R0}hitTestCircle(s,f,d,m,v){const C=s-d,T=s+d,P=f-d,R=f+d;if(T<0||C>this.width||R<0||P>this.height)return!1;const B=[];return this._forEachCell(C,P,T,R,this._queryCellCircle,B,{hitTest:!0,overlapMode:m,circle:{x:s,y:f,radius:d},seenUids:{box:{},circle:{}}},v),B.length>0}_queryCell(s,f,d,m,v,C,T,P){const{seenUids:R,hitTest:B,overlapMode:U}=T,X=this.boxCells[v];if(X!==null){const it=this.bboxes;for(const ct of X)if(!R.box[ct]){R.box[ct]=!0;const tt=4*ct,wt=this.boxKeys[ct];if(s<=it[tt+2]&&f<=it[tt+3]&&d>=it[tt+0]&&m>=it[tt+1]&&(!P||P(wt))&&(!B||!Fi(U,wt.overlapMode))&&(C.push({key:wt,x1:it[tt],y1:it[tt+1],x2:it[tt+2],y2:it[tt+3]}),B))return!0}}const rt=this.circleCells[v];if(rt!==null){const it=this.circles;for(const ct of rt)if(!R.circle[ct]){R.circle[ct]=!0;const tt=3*ct,wt=this.circleKeys[ct];if(this._circleAndRectCollide(it[tt],it[tt+1],it[tt+2],s,f,d,m)&&(!P||P(wt))&&(!B||!Fi(U,wt.overlapMode))){const zt=it[tt],ht=it[tt+1],Mt=it[tt+2];if(C.push({key:wt,x1:zt-Mt,y1:ht-Mt,x2:zt+Mt,y2:ht+Mt}),B)return!0}}}return!1}_queryCellCircle(s,f,d,m,v,C,T,P){const{circle:R,seenUids:B,overlapMode:U}=T,X=this.boxCells[v];if(X!==null){const it=this.bboxes;for(const ct of X)if(!B.box[ct]){B.box[ct]=!0;const tt=4*ct,wt=this.boxKeys[ct];if(this._circleAndRectCollide(R.x,R.y,R.radius,it[tt+0],it[tt+1],it[tt+2],it[tt+3])&&(!P||P(wt))&&!Fi(U,wt.overlapMode))return C.push(!0),!0}}const rt=this.circleCells[v];if(rt!==null){const it=this.circles;for(const ct of rt)if(!B.circle[ct]){B.circle[ct]=!0;const tt=3*ct,wt=this.circleKeys[ct];if(this._circlesCollide(it[tt],it[tt+1],it[tt+2],R.x,R.y,R.radius)&&(!P||P(wt))&&!Fi(U,wt.overlapMode))return C.push(!0),!0}}}_forEachCell(s,f,d,m,v,C,T,P){const R=this._convertToXCellCoord(s),B=this._convertToYCellCoord(f),U=this._convertToXCellCoord(d),X=this._convertToYCellCoord(m);for(let rt=R;rt<=U;rt++)for(let it=B;it<=X;it++)if(v.call(this,s,f,d,m,this.xCellCount*it+rt,C,T,P))return}_convertToXCellCoord(s){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(s*this.xScale)))}_convertToYCellCoord(s){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(s*this.yScale)))}_circlesCollide(s,f,d,m,v,C){const T=m-s,P=v-f,R=d+C;return R*R>T*T+P*P}_circleAndRectCollide(s,f,d,m,v,C,T){const P=(C-m)/2,R=Math.abs(s-(m+P));if(R>P+d)return!1;const B=(T-v)/2,U=Math.abs(f-(v+B));if(U>B+d)return!1;if(R<=P||U<=B)return!0;const X=R-P,rt=U-B;return X*X+rt*rt<=d*d}}function sn(y,s,f,d,m){const v=u.F();return s?(u.J(v,v,[1/m,1/m,1]),f||u.ad(v,v,d.angle)):u.K(v,d.labelPlaneMatrix,y),v}function ba(y,s,f,d,m){if(s){const v=u.ae(y);return u.J(v,v,[m,m,1]),f||u.ad(v,v,-d.angle),v}return d.glCoordMatrix}function ji(y,s,f){let d;f?(d=[y.x,y.y,f(y.x,y.y),1],u.af(d,d,s)):(d=[y.x,y.y,0,1],ke(d,d,s));const m=d[3];return{point:new u.P(d[0]/m,d[1]/m),signedDistanceFromCamera:m}}function lt(y,s){return .5+y/s*.5}function j(y,s){const f=y[0]/y[3],d=y[1]/y[3];return f>=-s[0]&&f<=s[0]&&d>=-s[1]&&d<=s[1]}function W(y,s,f,d,m,v,C,T,P,R){const B=d?y.textSizeData:y.iconSizeData,U=u.ag(B,f.transform.zoom),X=[256/f.width*2+1,256/f.height*2+1],rt=d?y.text.dynamicLayoutVertexArray:y.icon.dynamicLayoutVertexArray;rt.clear();const it=y.lineVertexArray,ct=d?y.text.placedSymbolArray:y.icon.placedSymbolArray,tt=f.transform.width/f.transform.height;let wt=!1;for(let zt=0;ztMath.abs(f.x-s.x)*d?{useVertical:!0}:(y===u.ah.vertical?s.yf.x)?{needsFlipping:!0}:null}function Ct(y,s,f,d,m,v,C,T,P,R,B,U,X,rt,it,ct){const tt=s/24,wt=y.lineOffsetX*tt,zt=y.lineOffsetY*tt;let ht;if(y.numGlyphs>1){const Mt=y.glyphStartIndex+y.numGlyphs,Ft=y.lineStartIndex,Ut=y.lineStartIndex+y.lineLength,$t=K(tt,T,wt,zt,f,B,U,y,P,v,X,it,ct);if(!$t)return{notEnoughRoom:!0};const ne=ji($t.first.point,C,ct).point,ee=ji($t.last.point,C,ct).point;if(d&&!f){const le=nt(y.writingMode,ne,ee,rt);if(le)return le}ht=[$t.first];for(let le=y.glyphStartIndex+1;le0?ne.point:J(U,$t,Ft,1,m,ct),le=nt(y.writingMode,Ft,ee,rt);if(le)return le}const Mt=Vt(tt*T.getoffsetX(y.glyphStartIndex),wt,zt,f,B,U,y.segment,y.lineStartIndex,y.lineStartIndex+y.lineLength,P,v,X,it,ct);if(!Mt)return{notEnoughRoom:!0};ht=[Mt]}for(const Mt of ht)u.aj(R,Mt.point,Mt.angle);return{}}function J(y,s,f,d,m,v){const C=ji(y.add(y.sub(s)._unit()),m,v).point,T=f.sub(C);return f.add(T._mult(d/T.mag()))}function Tt(y,s){const{projectionCache:f,lineVertexArray:d,labelPlaneMatrix:m,tileAnchorPoint:v,distanceFromAnchor:C,getElevation:T,previousVertex:P,direction:R,absOffsetX:B}=s;if(f.projections[y])return f.projections[y];const U=new u.P(d.getx(y),d.gety(y)),X=ji(U,m,T);if(X.signedDistanceFromCamera>0)return f.projections[y]=X.point,X.point;const rt=y-R;return J(C===0?v:new u.P(d.getx(rt),d.gety(rt)),U,P,B-C+1,m,T)}function _t(y,s,f){return y._unit()._perp()._mult(s*f)}function At(y,s,f,d,m,v,C,T){const{projectionCache:P,direction:R}=T;if(P.offsets[y])return P.offsets[y];const B=f.add(s);if(y+R=m)return P.offsets[y]=B,B;const U=Tt(y+R,T),X=_t(U.sub(f),C,R),rt=f.add(X),it=U.add(X);return P.offsets[y]=u.ak(v,B,rt,it)||B,P.offsets[y]}function Vt(y,s,f,d,m,v,C,T,P,R,B,U,X,rt){const it=d?y-s:y+s;let ct=it>0?1:-1,tt=0;d&&(ct*=-1,tt=Math.PI),ct<0&&(tt+=Math.PI);let wt,zt,ht=ct>0?T+C:T+C+1,Mt=m,Ft=m,Ut=0,$t=0;const ne=Math.abs(it),ee=[];let le;for(;Ut+$t<=ne;){if(ht+=ct,ht=P)return null;Ut+=$t,Ft=Mt,zt=wt;const me={projectionCache:U,lineVertexArray:R,labelPlaneMatrix:B,tileAnchorPoint:v,distanceFromAnchor:Ut,getElevation:rt,previousVertex:Ft,direction:ct,absOffsetX:ne};if(Mt=Tt(ht,me),f===0)ee.push(Ft),le=Mt.sub(Ft);else{let je;const hn=Mt.sub(Ft);je=hn.mag()===0?_t(Tt(ht+ct,me).sub(Mt),f,ct):_t(hn,f,ct),zt||(zt=Ft.add(je)),wt=At(ht,je,Mt,T,P,zt,f,me),ee.push(zt),le=wt.sub(zt)}$t=le.mag()}const pe=le._mult((ne-Ut)/$t)._add(zt||Ft),cn=tt+Math.atan2(Mt.y-Ft.y,Mt.x-Ft.x);return ee.push(pe),{point:pe,angle:X?cn:0,path:ee}}const Xt=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function Yt(y,s){for(let f=0;f=1;dn--)hn.push(me.path[dn]);for(let dn=1;dnji(yn,P,it));hn=dn.some(yn=>yn.signedDistanceFromCamera<=0)?[]:dn.map(yn=>yn.point)}let Qe=[];if(hn.length>0){const dn=hn[0].clone(),yn=hn[0].clone();for(let Di=1;Di=le.x&&yn.x<=pe.x&&dn.y>=le.y&&yn.y<=pe.y?[hn]:yn.xpe.x||yn.ype.y?[]:u.al([hn],le.x,le.y,pe.x,pe.y)}for(const dn of Qe){cn.reset(dn,.25*ee);let yn=0;yn=cn.length<=.5*ee?1:Math.ceil(cn.paddedLength/Ln)+1;for(let Di=0;Di=this.screenRightBoundary||mthis.screenBottomBoundary}isInsideGrid(s,f,d,m){return d>=0&&s=0&&fd.collisionGroupID===f}}return this.collisionGroups[s]}}function hr(y,s,f,d,m){const{horizontalAlign:v,verticalAlign:C}=u.at(y);return new u.P(-(v-.5)*s+d[0]*m,-(C-.5)*f+d[1]*m)}function io(y,s,f,d,m,v){const{x1:C,x2:T,y1:P,y2:R,anchorPointX:B,anchorPointY:U}=y,X=new u.P(s,f);return d&&X._rotate(m?v:-v),{x1:C+X.x,y1:P+X.y,x2:T+X.x,y2:R+X.y,anchorPointX:B,anchorPointY:U}}class go{constructor(s,f,d,m,v){this.transform=s.clone(),this.terrain=f,this.collisionIndex=new tn(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=d,this.retainedQueryData={},this.collisionGroups=new Pi(m),this.collisionCircleArrays={},this.prevPlacement=v,v&&(v.prevPlacement=void 0),this.placedOrientations={}}getBucketParts(s,f,d,m){const v=d.getBucket(f),C=d.latestFeatureIndex;if(!v||!C||f.id!==v.layerIds[0])return;const T=d.collisionBoxArray,P=v.layers[0].layout,R=Math.pow(2,this.transform.zoom-d.tileID.overscaledZ),B=d.tileSize/u.W,U=this.transform.calculatePosMatrix(d.tileID.toUnwrapped()),X=P.get("text-pitch-alignment")==="map",rt=P.get("text-rotation-alignment")==="map",it=rn(d,1,this.transform.zoom),ct=sn(U,X,rt,this.transform,it);let tt=null;if(X){const zt=ba(U,X,rt,this.transform,it);tt=u.K([],this.transform.labelPlaneMatrix,zt)}this.retainedQueryData[v.bucketInstanceId]=new pn(v.bucketInstanceId,C,v.sourceLayerIndex,v.index,d.tileID);const wt={bucket:v,layout:P,posMatrix:U,textLabelPlaneMatrix:ct,labelToScreenMatrix:tt,scale:R,textPixelRatio:B,holdingForFade:d.holdingForFade(),collisionBoxArray:T,partiallyEvaluatedTextSize:u.ag(v.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(v.sourceID)};if(m)for(const zt of v.sortKeyRanges){const{sortKey:ht,symbolInstanceStart:Mt,symbolInstanceEnd:Ft}=zt;s.push({sortKey:ht,symbolInstanceStart:Mt,symbolInstanceEnd:Ft,parameters:wt})}else s.push({symbolInstanceStart:0,symbolInstanceEnd:v.symbolInstances.length,parameters:wt})}attemptAnchorPlacement(s,f,d,m,v,C,T,P,R,B,U,X,rt,it,ct,tt){const wt=u.ap[s.textAnchor],zt=[s.textOffset0,s.textOffset1],ht=hr(wt,d,m,zt,v),Mt=this.collisionIndex.placeCollisionBox(io(f,ht.x,ht.y,C,T,this.transform.angle),U,P,R,B.predicate,tt);if((!ct||this.collisionIndex.placeCollisionBox(io(ct,ht.x,ht.y,C,T,this.transform.angle),U,P,R,B.predicate,tt).box.length!==0)&&Mt.box.length>0){let Ft;if(this.prevPlacement&&this.prevPlacement.variableOffsets[X.crossTileID]&&this.prevPlacement.placements[X.crossTileID]&&this.prevPlacement.placements[X.crossTileID].text&&(Ft=this.prevPlacement.variableOffsets[X.crossTileID].anchor),X.crossTileID===0)throw new Error("symbolInstance.crossTileID can't be 0");return this.variableOffsets[X.crossTileID]={textOffset:zt,width:d,height:m,anchor:wt,textBoxScale:v,prevAnchor:Ft},this.markUsedJustification(rt,wt,X,it),rt.allowVerticalPlacement&&(this.markUsedOrientation(rt,it,X),this.placedOrientations[X.crossTileID]=it),{shift:ht,placedGlyphBoxes:Mt}}}placeLayerBucketPart(s,f,d){const{bucket:m,layout:v,posMatrix:C,textLabelPlaneMatrix:T,labelToScreenMatrix:P,textPixelRatio:R,holdingForFade:B,collisionBoxArray:U,partiallyEvaluatedTextSize:X,collisionGroup:rt}=s.parameters,it=v.get("text-optional"),ct=v.get("icon-optional"),tt=u.aq(v,"text-overlap","text-allow-overlap"),wt=tt==="always",zt=u.aq(v,"icon-overlap","icon-allow-overlap"),ht=zt==="always",Mt=v.get("text-rotation-alignment")==="map",Ft=v.get("text-pitch-alignment")==="map",Ut=v.get("icon-text-fit")!=="none",$t=v.get("symbol-z-order")==="viewport-y",ne=wt&&(ht||!m.hasIconData()||ct),ee=ht&&(wt||!m.hasTextData()||it);!m.collisionArrays&&U&&m.deserializeCollisionBoxes(U);const le=this.retainedQueryData[m.bucketInstanceId].tileID,pe=this.terrain?(me,je)=>this.terrain.getElevation(le,me,je):null,cn=(me,je)=>{var hn,Ln;if(f[me.crossTileID])return;if(B)return void(this.placements[me.crossTileID]=new di(!1,!1,!1));let Qe=!1,dn=!1,yn=!0,Di=null,Hn={box:null,offscreen:null},zo={box:null,offscreen:null},fr=null,wi=null,pr=null,Fo=0,Xs=0,Ya=0;je.textFeatureIndex?Fo=je.textFeatureIndex:me.useRuntimeCollisionCircles&&(Fo=me.featureIndex),je.verticalTextFeatureIndex&&(Xs=je.verticalTextFeatureIndex);const fc=je.textBox;if(fc){const nr=ir=>{let Ii=u.ah.horizontal;if(m.allowVerticalPlacement&&!ir&&this.prevPlacement){const as=this.prevPlacement.placedOrientations[me.crossTileID];as&&(this.placedOrientations[me.crossTileID]=as,Ii=as,this.markUsedOrientation(m,Ii,me))}return Ii},Si=(ir,Ii)=>{if(m.allowVerticalPlacement&&me.numVerticalGlyphVertices>0&&je.verticalTextBox){for(const as of m.writingModes)if(as===u.ah.vertical?(Hn=Ii(),zo=Hn):Hn=ir(),Hn&&Hn.box&&Hn.box.length)break}else Hn=ir()},gi=me.textAnchorOffsetStartIndex,ss=me.textAnchorOffsetEndIndex;if(ss===gi){const ir=(Ii,as)=>{const rr=this.collisionIndex.placeCollisionBox(Ii,tt,R,C,rt.predicate,pe);return rr&&rr.box&&rr.box.length&&(this.markUsedOrientation(m,as,me),this.placedOrientations[me.crossTileID]=as),rr};Si(()=>ir(fc,u.ah.horizontal),()=>{const Ii=je.verticalTextBox;return m.allowVerticalPlacement&&me.numVerticalGlyphVertices>0&&Ii?ir(Ii,u.ah.vertical):{box:null,offscreen:null}}),nr(Hn&&Hn.box&&Hn.box.length)}else{let ir=u.ap[(Ln=(hn=this.prevPlacement)===null||hn===void 0?void 0:hn.variableOffsets[me.crossTileID])===null||Ln===void 0?void 0:Ln.anchor];const Ii=(rr,Bi,rp)=>{const lm=rr.x2-rr.x1,Ll=rr.y2-rr.y1,Ml=me.textBoxScale,Ih=Ut&&zt==="never"?Bi:null;let Ja={box:[],offscreen:!1},op=tt==="never"?1:2,um="never";ir&&op++;for(let sp=0;spIi(fc,je.iconBox,u.ah.horizontal),()=>{const rr=je.verticalTextBox;return m.allowVerticalPlacement&&!(Hn&&Hn.box&&Hn.box.length)&&me.numVerticalGlyphVertices>0&&rr?Ii(rr,je.verticalIconBox,u.ah.vertical):{box:null,offscreen:null}}),Hn&&(Qe=Hn.box,yn=Hn.offscreen);const as=nr(Hn&&Hn.box);if(!Qe&&this.prevPlacement){const rr=this.prevPlacement.variableOffsets[me.crossTileID];rr&&(this.variableOffsets[me.crossTileID]=rr,this.markUsedJustification(m,rr.anchor,me,as))}}}if(fr=Hn,Qe=fr&&fr.box&&fr.box.length>0,yn=fr&&fr.offscreen,me.useRuntimeCollisionCircles){const nr=m.text.placedSymbolArray.get(me.centerJustifiedTextSymbolIndex),Si=u.ai(m.textSizeData,X,nr),gi=v.get("text-padding");wi=this.collisionIndex.placeCollisionCircles(tt,nr,m.lineVertexArray,m.glyphOffsetArray,Si,C,T,P,d,Ft,rt.predicate,me.collisionCircleDiameter,gi,pe),wi.circles.length&&wi.collisionDetected&&!d&&u.w("Collisions detected, but collision boxes are not shown"),Qe=wt||wi.circles.length>0&&!wi.collisionDetected,yn=yn&&wi.offscreen}if(je.iconFeatureIndex&&(Ya=je.iconFeatureIndex),je.iconBox){const nr=Si=>{const gi=Ut&&Di?io(Si,Di.x,Di.y,Mt,Ft,this.transform.angle):Si;return this.collisionIndex.placeCollisionBox(gi,zt,R,C,rt.predicate,pe)};zo&&zo.box&&zo.box.length&&je.verticalIconBox?(pr=nr(je.verticalIconBox),dn=pr.box.length>0):(pr=nr(je.iconBox),dn=pr.box.length>0),yn=yn&&pr.offscreen}const Ka=it||me.numHorizontalGlyphVertices===0&&me.numVerticalGlyphVertices===0,$s=ct||me.numIconVertices===0;if(Ka||$s?$s?Ka||(dn=dn&&Qe):Qe=dn&&Qe:dn=Qe=dn&&Qe,Qe&&fr&&fr.box&&this.collisionIndex.insertCollisionBox(fr.box,tt,v.get("text-ignore-placement"),m.bucketInstanceId,zo&&zo.box&&Xs?Xs:Fo,rt.ID),dn&&pr&&this.collisionIndex.insertCollisionBox(pr.box,zt,v.get("icon-ignore-placement"),m.bucketInstanceId,Ya,rt.ID),wi&&(Qe&&this.collisionIndex.insertCollisionCircles(wi.circles,tt,v.get("text-ignore-placement"),m.bucketInstanceId,Fo,rt.ID),d)){const nr=m.bucketInstanceId;let Si=this.collisionCircleArrays[nr];Si===void 0&&(Si=this.collisionCircleArrays[nr]=new tr);for(let gi=0;gi=0;--je){const hn=me[je];cn(m.symbolInstances.get(hn),m.collisionArrays[hn])}}else for(let me=s.symbolInstanceStart;me=0&&(s.text.placedSymbolArray.get(T).crossTileID=v>=0&&T!==v?0:d.crossTileID)}markUsedOrientation(s,f,d){const m=f===u.ah.horizontal||f===u.ah.horizontalOnly?f:0,v=f===u.ah.vertical?f:0,C=[d.leftJustifiedTextSymbolIndex,d.centerJustifiedTextSymbolIndex,d.rightJustifiedTextSymbolIndex];for(const T of C)s.text.placedSymbolArray.get(T).placedOrientation=m;d.verticalPlacedTextSymbolIndex&&(s.text.placedSymbolArray.get(d.verticalPlacedTextSymbolIndex).placedOrientation=v)}commit(s){this.commitTime=s,this.zoomAtLastRecencyCheck=this.transform.zoom;const f=this.prevPlacement;let d=!1;this.prevZoomAdjustment=f?f.zoomAdjustment(this.transform.zoom):0;const m=f?f.symbolFadeChange(s):1,v=f?f.opacities:{},C=f?f.variableOffsets:{},T=f?f.placedOrientations:{};for(const P in this.placements){const R=this.placements[P],B=v[P];B?(this.opacities[P]=new Yn(B,m,R.text,R.icon),d=d||R.text!==B.text.placed||R.icon!==B.icon.placed):(this.opacities[P]=new Yn(null,m,R.text,R.icon,R.skipFade),d=d||R.text||R.icon)}for(const P in v){const R=v[P];if(!this.opacities[P]){const B=new Yn(R,m,!1,!1);B.isHidden()||(this.opacities[P]=B,d=d||R.text.placed||R.icon.placed)}}for(const P in C)this.variableOffsets[P]||!this.opacities[P]||this.opacities[P].isHidden()||(this.variableOffsets[P]=C[P]);for(const P in T)this.placedOrientations[P]||!this.opacities[P]||this.opacities[P].isHidden()||(this.placedOrientations[P]=T[P]);if(f&&f.lastPlacementChangeTime===void 0)throw new Error("Last placement time for previous placement is not defined");d?this.lastPlacementChangeTime=s:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=f?f.lastPlacementChangeTime:s)}updateLayerOpacities(s,f){const d={};for(const m of f){const v=m.getBucket(s);v&&m.latestFeatureIndex&&s.id===v.layerIds[0]&&this.updateBucketOpacities(v,d,m.collisionBoxArray)}}updateBucketOpacities(s,f,d){s.hasTextData()&&(s.text.opacityVertexArray.clear(),s.text.hasVisibleVertices=!1),s.hasIconData()&&(s.icon.opacityVertexArray.clear(),s.icon.hasVisibleVertices=!1),s.hasIconCollisionBoxData()&&s.iconCollisionBox.collisionVertexArray.clear(),s.hasTextCollisionBoxData()&&s.textCollisionBox.collisionVertexArray.clear();const m=s.layers[0],v=m.layout,C=new Yn(null,0,!1,!1,!0),T=v.get("text-allow-overlap"),P=v.get("icon-allow-overlap"),R=m._unevaluatedLayout.hasValue("text-variable-anchor")||m._unevaluatedLayout.hasValue("text-variable-anchor-offset"),B=v.get("text-rotation-alignment")==="map",U=v.get("text-pitch-alignment")==="map",X=v.get("icon-text-fit")!=="none",rt=new Yn(null,0,T&&(P||!s.hasIconData()||v.get("icon-optional")),P&&(T||!s.hasTextData()||v.get("text-optional")),!0);!s.collisionArrays&&d&&(s.hasIconCollisionBoxData()||s.hasTextCollisionBoxData())&&s.deserializeCollisionBoxes(d);const it=(ct,tt,wt)=>{for(let zt=0;zt0,Ut=this.placedOrientations[tt.crossTileID],$t=Ut===u.ah.vertical,ne=Ut===u.ah.horizontal||Ut===u.ah.horizontalOnly;if(wt>0||zt>0){const ee=_o(Mt.text);it(s.text,wt,$t?qu:ee),it(s.text,zt,ne?qu:ee);const le=Mt.text.isHidden();[tt.rightJustifiedTextSymbolIndex,tt.centerJustifiedTextSymbolIndex,tt.leftJustifiedTextSymbolIndex].forEach(me=>{me>=0&&(s.text.placedSymbolArray.get(me).hidden=le||$t?1:0)}),tt.verticalPlacedTextSymbolIndex>=0&&(s.text.placedSymbolArray.get(tt.verticalPlacedTextSymbolIndex).hidden=le||ne?1:0);const pe=this.variableOffsets[tt.crossTileID];pe&&this.markUsedJustification(s,pe.anchor,tt,Ut);const cn=this.placedOrientations[tt.crossTileID];cn&&(this.markUsedJustification(s,"left",tt,cn),this.markUsedOrientation(s,cn,tt))}if(Ft){const ee=_o(Mt.icon),le=!(X&&tt.verticalPlacedIconSymbolIndex&&$t);tt.placedIconSymbolIndex>=0&&(it(s.icon,tt.numIconVertices,le?ee:qu),s.icon.placedSymbolArray.get(tt.placedIconSymbolIndex).hidden=Mt.icon.isHidden()),tt.verticalPlacedIconSymbolIndex>=0&&(it(s.icon,tt.numVerticalIconVertices,le?qu:ee),s.icon.placedSymbolArray.get(tt.verticalPlacedIconSymbolIndex).hidden=Mt.icon.isHidden())}if(s.hasIconCollisionBoxData()||s.hasTextCollisionBoxData()){const ee=s.collisionArrays[ct];if(ee){let le=new u.P(0,0);if(ee.textBox||ee.verticalTextBox){let cn=!0;if(R){const me=this.variableOffsets[ht];me?(le=hr(me.anchor,me.width,me.height,me.textOffset,me.textBoxScale),B&&le._rotate(U?this.transform.angle:-this.transform.angle)):cn=!1}ee.textBox&&Sr(s.textCollisionBox.collisionVertexArray,Mt.text.placed,!cn||$t,le.x,le.y),ee.verticalTextBox&&Sr(s.textCollisionBox.collisionVertexArray,Mt.text.placed,!cn||ne,le.x,le.y)}const pe=!!(!ne&&ee.verticalIconBox);ee.iconBox&&Sr(s.iconCollisionBox.collisionVertexArray,Mt.icon.placed,pe,X?le.x:0,X?le.y:0),ee.verticalIconBox&&Sr(s.iconCollisionBox.collisionVertexArray,Mt.icon.placed,!pe,X?le.x:0,X?le.y:0)}}}if(s.sortFeatures(this.transform.angle),this.retainedQueryData[s.bucketInstanceId]&&(this.retainedQueryData[s.bucketInstanceId].featureSortOrder=s.featureSortOrder),s.hasTextData()&&s.text.opacityVertexBuffer&&s.text.opacityVertexBuffer.updateData(s.text.opacityVertexArray),s.hasIconData()&&s.icon.opacityVertexBuffer&&s.icon.opacityVertexBuffer.updateData(s.icon.opacityVertexArray),s.hasIconCollisionBoxData()&&s.iconCollisionBox.collisionVertexBuffer&&s.iconCollisionBox.collisionVertexBuffer.updateData(s.iconCollisionBox.collisionVertexArray),s.hasTextCollisionBoxData()&&s.textCollisionBox.collisionVertexBuffer&&s.textCollisionBox.collisionVertexBuffer.updateData(s.textCollisionBox.collisionVertexArray),s.text.opacityVertexArray.length!==s.text.layoutVertexArray.length/4)throw new Error(`bucket.text.opacityVertexArray.length (= ${s.text.opacityVertexArray.length}) !== bucket.text.layoutVertexArray.length (= ${s.text.layoutVertexArray.length}) / 4`);if(s.icon.opacityVertexArray.length!==s.icon.layoutVertexArray.length/4)throw new Error(`bucket.icon.opacityVertexArray.length (= ${s.icon.opacityVertexArray.length}) !== bucket.icon.layoutVertexArray.length (= ${s.icon.layoutVertexArray.length}) / 4`);if(s.bucketInstanceId in this.collisionCircleArrays){const ct=this.collisionCircleArrays[s.bucketInstanceId];s.placementInvProjMatrix=ct.invProjMatrix,s.placementViewportMatrix=ct.viewportMatrix,s.collisionCircleArray=ct.circles,delete this.collisionCircleArrays[s.bucketInstanceId]}}symbolFadeChange(s){return this.fadeDuration===0?1:(s-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment}zoomAdjustment(s){return Math.max(0,(this.transform.zoom-s)/1.5)}hasTransitions(s){return this.stale||s-this.lastPlacementChangeTimes}setStale(){this.stale=!0}}function Sr(y,s,f,d,m){y.emplaceBack(s?1:0,f?1:0,d||0,m||0),y.emplaceBack(s?1:0,f?1:0,d||0,m||0),y.emplaceBack(s?1:0,f?1:0,d||0,m||0),y.emplaceBack(s?1:0,f?1:0,d||0,m||0)}const js=Math.pow(2,25),Ed=Math.pow(2,24),Zg=Math.pow(2,17),Zn=Math.pow(2,16),Cf=Math.pow(2,9),Tf=Math.pow(2,8),Ro=Math.pow(2,1);function _o(y){if(y.opacity===0&&!y.placed)return 0;if(y.opacity===1&&y.placed)return 4294967295;const s=y.placed?1:0,f=Math.floor(127*y.opacity);return f*js+s*Ed+f*Zg+s*Zn+f*Cf+s*Tf+f*Ro+s}const qu=0;class rs{constructor(s){this._sortAcrossTiles=s.layout.get("symbol-z-order")!=="viewport-y"&&!s.layout.get("symbol-sort-key").isConstant(),this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]}continuePlacement(s,f,d,m,v){const C=this._bucketParts;for(;this._currentTileIndexT.sortKey-P.sortKey));this._currentPartIndex!this._forceFullPlacement&&E.now()-m>2;for(;this._currentPlacementIndex>=0;){const C=f[s[this._currentPlacementIndex]],T=this.placement.collisionIndex.transform.zoom;if(C.type==="symbol"&&(!C.minzoom||C.minzoom<=T)&&(!C.maxzoom||C.maxzoom>T)){if(this._inProgressLayer||(this._inProgressLayer=new rs(C)),this._inProgressLayer.continuePlacement(d[C.source],this.placement,this._showCollisionBoxes,C,v))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0}commit(s){return this.placement.commit(s),this.placement}}const Jl=512/u.W/2;class Bc{constructor(s,f,d){this.tileID=s,this.bucketInstanceId=d,this._symbolsByKey={};const m=new Map;for(let v=0;v({x:Math.floor(P.anchorX*Jl),y:Math.floor(P.anchorY*Jl)})),crossTileIDs:C.map(P=>P.crossTileID)};if(T.positions.length>128){const P=new u.au(T.positions.length,16,Uint16Array);for(const{x:R,y:B}of T.positions)P.add(R,B);P.finish(),delete T.positions,T.index=P}this._symbolsByKey[v]=T}}getScaledCoordinates(s,f){const{x:d,y:m,z:v}=this.tileID.canonical,{x:C,y:T,z:P}=f.canonical,R=Jl/Math.pow(2,P-v),B=(T*u.W+s.anchorY)*R,U=m*u.W*Jl;return{x:Math.floor((C*u.W+s.anchorX)*R-d*u.W*Jl),y:Math.floor(B-U)}}findMatches(s,f,d){const m=this.tileID.canonical.zs)}}class er{constructor(){this.maxCrossTileID=0}generate(){return++this.maxCrossTileID}}class Zu{constructor(){this.indexes={},this.usedCrossTileIDs={},this.lng=0}handleWrapJump(s){const f=Math.round((s-this.lng)/360);if(f!==0)for(const d in this.indexes){const m=this.indexes[d],v={};for(const C in m){const T=m[C];T.tileID=T.tileID.unwrapTo(T.tileID.wrap+f),v[T.tileID.key]=T}this.indexes[d]=v}this.lng=s}addBucket(s,f,d){if(this.indexes[s.overscaledZ]&&this.indexes[s.overscaledZ][s.key]){if(this.indexes[s.overscaledZ][s.key].bucketInstanceId===f.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(s.overscaledZ,this.indexes[s.overscaledZ][s.key])}for(let v=0;vs.overscaledZ)for(const T in C){const P=C[T];P.tileID.isChildOf(s)&&P.findMatches(f.symbolInstances,s,m)}else{const T=C[s.scaledTo(Number(v)).key];T&&T.findMatches(f.symbolInstances,s,m)}}for(let v=0;v{f[d]=!0});for(const d in this.layerIndexes)f[d]||delete this.layerIndexes[d]}}const xi=(y,s)=>u.t(y,s&&s.filter(f=>f.identifier!=="source.canvas")),Vc=u.av();class No extends u.E{constructor(s,f={}){super(),this._rtlPluginLoaded=()=>{for(const d in this.sourceCaches){const m=this.sourceCaches[d].getSource().type;m!=="vector"&&m!=="geojson"||this.sourceCaches[d].reload()}},this.map=s,this.dispatcher=new oi(ri(),s._getMapId()),this.dispatcher.registerMessageHandler("GG",(d,m)=>this.getGlyphs(d,m)),this.dispatcher.registerMessageHandler("GI",(d,m)=>this.getImages(d,m)),this.imageManager=new te,this.imageManager.setEventedParent(this),this.glyphManager=new re(s._requestManager,f.localIdeographFontFamily),this.lineAtlas=new ze(256,512),this.crossTileSymbolIndex=new qa,this._spritesImagesIds={},this._layers={},this._order=[],this.sourceCaches={},this.zoomHistory=new u.aw,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("SR",u.ax()),se().on(Dr,this._rtlPluginLoaded),this.on("data",d=>{if(d.dataType!=="source"||d.sourceDataType!=="metadata")return;const m=this.sourceCaches[d.sourceId];if(!m)return;const v=m.getSource();if(v&&v.vectorLayerIds)for(const C in this._layers){const T=this._layers[C];T.source===v.id&&this._validateLayer(T)}})}loadURL(s,f={},d){this.fire(new u.k("dataloading",{dataType:"style"})),f.validate=typeof f.validate!="boolean"||f.validate;const m=this.map._requestManager.transformRequest(s,"Style");this._loadStyleRequest=new AbortController,u.h(m,this._loadStyleRequest).then(v=>{this._loadStyleRequest=null,this._load(v.data,f,d)}).catch(v=>{this._loadStyleRequest=null,v&&this.fire(new u.j(v))})}loadJSON(s,f={},d){this.fire(new u.k("dataloading",{dataType:"style"})),this._frameRequest=new AbortController,E.frameAsync(this._frameRequest).then(()=>{this._frameRequest=null,f.validate=f.validate!==!1,this._load(s,f,d)}).catch(()=>{})}loadEmpty(){this.fire(new u.k("dataloading",{dataType:"style"})),this._load(Vc,{validate:!1})}_load(s,f,d){var m;const v=f.transformStyle?f.transformStyle(d,s):s;if(!f.validate||!xi(this,u.x(v))){this._loaded=!0,this.stylesheet=v;for(const C in v.sources)this.addSource(C,v.sources[C],{validate:!1});v.sprite?this._loadSprite(v.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(v.glyphs),this._createLayers(),this.light=new Te(this.stylesheet.light),this.map.setTerrain((m=this.stylesheet.terrain)!==null&&m!==void 0?m:null),this.fire(new u.k("data",{dataType:"style"})),this.fire(new u.k("style.load"))}}_createLayers(){const s=u.ay(this.stylesheet.layers);this.dispatcher.broadcast("SL",s),this._order=s.map(f=>f.id),this._layers={},this._serializedLayers=null;for(const f of s){const d=u.az(f);d.setEventedParent(this,{layer:{id:f.id}}),this._layers[f.id]=d}}_loadSprite(s,f=!1,d=void 0){let m;this.imageManager.setLoaded(!1),this._spriteRequest=new AbortController,function(v,C,T,P){return u._(this,void 0,void 0,function*(){const R=kt(v),B=T>1?"@2x":"",U={},X={};for(const{id:rt,url:it}of R){const ct=C.transformRequest(C.normalizeSpriteURL(it,B,".json"),"SpriteJSON");U[rt]=u.h(ct,P);const tt=C.transformRequest(C.normalizeSpriteURL(it,B,".png"),"SpriteImage");X[rt]=Z.getImage(tt,P)}return yield Promise.all([...Object.values(U),...Object.values(X)]),function(rt,it){return u._(this,void 0,void 0,function*(){const ct={};for(const tt in rt){ct[tt]={};const wt=E.getImageCanvasContext((yield it[tt]).data),zt=(yield rt[tt]).data;for(const ht in zt){const{width:Mt,height:Ft,x:Ut,y:$t,sdf:ne,pixelRatio:ee,stretchX:le,stretchY:pe,content:cn}=zt[ht];ct[tt][ht]={data:null,pixelRatio:ee,sdf:ne,stretchX:le,stretchY:pe,content:cn,spriteData:{width:Mt,height:Ft,x:Ut,y:$t,context:wt}}}}return ct})}(U,X)})}(s,this.map._requestManager,this.map.getPixelRatio(),this._spriteRequest).then(v=>{if(this._spriteRequest=null,v)for(const C in v){this._spritesImagesIds[C]=[];const T=this._spritesImagesIds[C]?this._spritesImagesIds[C].filter(P=>!(P in v)):[];for(const P of T)this.imageManager.removeImage(P),this._changedImages[P]=!0;for(const P in v[C]){const R=C==="default"?P:`${C}:${P}`;this._spritesImagesIds[C].push(R),R in this.imageManager.images?this.imageManager.updateImage(R,v[C][P],!1):this.imageManager.addImage(R,v[C][P]),f&&(this._changedImages[R]=!0)}}}).catch(v=>{this._spriteRequest=null,m=v,this.fire(new u.j(m))}).finally(()=>{this.imageManager.setLoaded(!0),this._availableImages=this.imageManager.listImages(),f&&(this._changed=!0),this.dispatcher.broadcast("SI",this._availableImages),this.fire(new u.k("data",{dataType:"style"})),d&&d(m)})}_unloadSprite(){for(const s of Object.values(this._spritesImagesIds).flat())this.imageManager.removeImage(s),this._changedImages[s]=!0;this._spritesImagesIds={},this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new u.k("data",{dataType:"style"}))}_validateLayer(s){const f=this.sourceCaches[s.source];if(!f)return;const d=s.sourceLayer;if(!d)return;const m=f.getSource();(m.type==="geojson"||m.vectorLayerIds&&m.vectorLayerIds.indexOf(d)===-1)&&this.fire(new u.j(new Error(`Source layer "${d}" does not exist on source "${m.id}" as specified by style layer "${s.id}".`)))}loaded(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(const s in this.sourceCaches)if(!this.sourceCaches[s].loaded())return!1;return!!this.imageManager.isLoaded()}_serializeByIds(s){const f=this._serializedAllLayers();if(!s||s.length===0)return Object.values(f);const d=[];for(const m of s)f[m]&&d.push(f[m]);return d}_serializedAllLayers(){let s=this._serializedLayers;if(s)return s;s=this._serializedLayers={};const f=Object.keys(this._layers);for(const d of f){const m=this._layers[d];m.type!=="custom"&&(s[d]=m.serialize())}return s}hasTransitions(){if(this.light&&this.light.hasTransition())return!0;for(const s in this.sourceCaches)if(this.sourceCaches[s].hasTransition())return!0;for(const s in this._layers)if(this._layers[s].hasTransition())return!0;return!1}_checkLoaded(){if(!this._loaded)throw new Error("Style is not done loading.")}update(s){if(!this._loaded)return;const f=this._changed;if(f){const m=Object.keys(this._updatedLayers),v=Object.keys(this._removedLayers);(m.length||v.length)&&this._updateWorkerLayers(m,v);for(const C in this._updatedSources){const T=this._updatedSources[C];if(T==="reload")this._reloadSource(C);else{if(T!=="clear")throw new Error(`Invalid action ${T}`);this._clearSource(C)}}this._updateTilesForChangedImages(),this._updateTilesForChangedGlyphs();for(const C in this._updatedPaintProps)this._layers[C].updateTransitions(s);this.light.updateTransitions(s),this._resetUpdates()}const d={};for(const m in this.sourceCaches){const v=this.sourceCaches[m];d[m]=v.used,v.used=!1}for(const m of this._order){const v=this._layers[m];v.recalculate(s,this._availableImages),!v.isHidden(s.zoom)&&v.source&&(this.sourceCaches[v.source].used=!0)}for(const m in d){const v=this.sourceCaches[m];!!d[m]!=!!v.used&&v.fire(new u.k("data",{sourceDataType:"visibility",dataType:"source",sourceId:m}))}this.light.recalculate(s),this.z=s.zoom,f&&this.fire(new u.k("data",{dataType:"style"}))}_updateTilesForChangedImages(){const s=Object.keys(this._changedImages);if(s.length){for(const f in this.sourceCaches)this.sourceCaches[f].reloadTilesForDependencies(["icons","patterns"],s);this._changedImages={}}}_updateTilesForChangedGlyphs(){if(this._glyphsDidChange){for(const s in this.sourceCaches)this.sourceCaches[s].reloadTilesForDependencies(["glyphs"],[""]);this._glyphsDidChange=!1}}_updateWorkerLayers(s,f){this.dispatcher.broadcast("UL",{layers:this._serializeByIds(s),removedIds:f})}_resetUpdates(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={},this._glyphsDidChange=!1}setState(s,f={}){var d;this._checkLoaded();const m=this.serialize();if(s=f.transformStyle?f.transformStyle(m,s):s,((d=f.validate)===null||d===void 0||d)&&xi(this,u.x(s)))return!1;(s=u.aA(s)).layers=u.ay(s.layers);const v=u.aB(m,s),C=this._getOperationsToPerform(v);if(C.unimplemented.length>0)throw new Error(`Unimplemented: ${C.unimplemented.join(", ")}.`);if(C.operations.length===0)return!1;for(const T of C.operations)T();return this.stylesheet=s,this._serializedLayers=null,!0}_getOperationsToPerform(s){const f=[],d=[];for(const m of s)switch(m.command){case"setCenter":case"setZoom":case"setBearing":case"setPitch":continue;case"addLayer":f.push(()=>this.addLayer.apply(this,m.args));break;case"removeLayer":f.push(()=>this.removeLayer.apply(this,m.args));break;case"setPaintProperty":f.push(()=>this.setPaintProperty.apply(this,m.args));break;case"setLayoutProperty":f.push(()=>this.setLayoutProperty.apply(this,m.args));break;case"setFilter":f.push(()=>this.setFilter.apply(this,m.args));break;case"addSource":f.push(()=>this.addSource.apply(this,m.args));break;case"removeSource":f.push(()=>this.removeSource.apply(this,m.args));break;case"setLayerZoomRange":f.push(()=>this.setLayerZoomRange.apply(this,m.args));break;case"setLight":f.push(()=>this.setLight.apply(this,m.args));break;case"setGeoJSONSourceData":f.push(()=>this.setGeoJSONSourceData.apply(this,m.args));break;case"setGlyphs":f.push(()=>this.setGlyphs.apply(this,m.args));break;case"setSprite":f.push(()=>this.setSprite.apply(this,m.args));break;case"setTerrain":f.push(()=>this.map.setTerrain.apply(this,m.args));break;case"setTransition":f.push(()=>{});break;default:d.push(m.command)}return{operations:f,unimplemented:d}}addImage(s,f){if(this.getImage(s))return this.fire(new u.j(new Error(`An image named "${s}" already exists.`)));this.imageManager.addImage(s,f),this._afterImageUpdated(s)}updateImage(s,f){this.imageManager.updateImage(s,f)}getImage(s){return this.imageManager.getImage(s)}removeImage(s){if(!this.getImage(s))return this.fire(new u.j(new Error(`An image named "${s}" does not exist.`)));this.imageManager.removeImage(s),this._afterImageUpdated(s)}_afterImageUpdated(s){this._availableImages=this.imageManager.listImages(),this._changedImages[s]=!0,this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new u.k("data",{dataType:"style"}))}listImages(){return this._checkLoaded(),this.imageManager.listImages()}addSource(s,f,d={}){if(this._checkLoaded(),this.sourceCaches[s]!==void 0)throw new Error(`Source "${s}" already exists.`);if(!f.type)throw new Error(`The type property must be defined, but only the following properties were given: ${Object.keys(f).join(", ")}.`);if(["vector","raster","geojson","video","image"].indexOf(f.type)>=0&&this._validate(u.x.source,`sources.${s}`,f,null,d))return;this.map&&this.map._collectResourceTiming&&(f.collectResourceTiming=!0);const m=this.sourceCaches[s]=new Qi(s,f,this.dispatcher);m.style=this,m.setEventedParent(this,()=>({isSourceLoaded:m.loaded(),source:m.serialize(),sourceId:s})),m.onAdd(this.map),this._changed=!0}removeSource(s){if(this._checkLoaded(),this.sourceCaches[s]===void 0)throw new Error("There is no source with this ID");for(const d in this._layers)if(this._layers[d].source===s)return this.fire(new u.j(new Error(`Source "${s}" cannot be removed while layer "${d}" is using it.`)));const f=this.sourceCaches[s];delete this.sourceCaches[s],delete this._updatedSources[s],f.fire(new u.k("data",{sourceDataType:"metadata",dataType:"source",sourceId:s})),f.setEventedParent(null),f.onRemove(this.map),this._changed=!0}setGeoJSONSourceData(s,f){if(this._checkLoaded(),this.sourceCaches[s]===void 0)throw new Error(`There is no source with this ID=${s}`);const d=this.sourceCaches[s].getSource();if(d.type!=="geojson")throw new Error(`geojsonSource.type is ${d.type}, which is !== 'geojson`);d.setData(f),this._changed=!0}getSource(s){return this.sourceCaches[s]&&this.sourceCaches[s].getSource()}addLayer(s,f,d={}){this._checkLoaded();const m=s.id;if(this.getLayer(m))return void this.fire(new u.j(new Error(`Layer "${m}" already exists on this map.`)));let v;if(s.type==="custom"){if(xi(this,u.aC(s)))return;v=u.az(s)}else{if("source"in s&&typeof s.source=="object"&&(this.addSource(m,s.source),s=u.aA(s),s=u.e(s,{source:m})),this._validate(u.x.layer,`layers.${m}`,s,{arrayIndex:-1},d))return;v=u.az(s),this._validateLayer(v),v.setEventedParent(this,{layer:{id:m}})}const C=f?this._order.indexOf(f):this._order.length;if(f&&C===-1)this.fire(new u.j(new Error(`Cannot add layer "${m}" before non-existing layer "${f}".`)));else{if(this._order.splice(C,0,m),this._layerOrderChanged=!0,this._layers[m]=v,this._removedLayers[m]&&v.source&&v.type!=="custom"){const T=this._removedLayers[m];delete this._removedLayers[m],T.type!==v.type?this._updatedSources[v.source]="clear":(this._updatedSources[v.source]="reload",this.sourceCaches[v.source].pause())}this._updateLayer(v),v.onAdd&&v.onAdd(this.map)}}moveLayer(s,f){if(this._checkLoaded(),this._changed=!0,!this._layers[s])return void this.fire(new u.j(new Error(`The layer '${s}' does not exist in the map's style and cannot be moved.`)));if(s===f)return;const d=this._order.indexOf(s);this._order.splice(d,1);const m=f?this._order.indexOf(f):this._order.length;f&&m===-1?this.fire(new u.j(new Error(`Cannot move layer "${s}" before non-existing layer "${f}".`))):(this._order.splice(m,0,s),this._layerOrderChanged=!0)}removeLayer(s){this._checkLoaded();const f=this._layers[s];if(!f)return void this.fire(new u.j(new Error(`Cannot remove non-existing layer "${s}".`)));f.setEventedParent(null);const d=this._order.indexOf(s);this._order.splice(d,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[s]=f,delete this._layers[s],this._serializedLayers&&delete this._serializedLayers[s],delete this._updatedLayers[s],delete this._updatedPaintProps[s],f.onRemove&&f.onRemove(this.map)}getLayer(s){return this._layers[s]}getLayersOrder(){return[...this._order]}hasLayer(s){return s in this._layers}setLayerZoomRange(s,f,d){this._checkLoaded();const m=this.getLayer(s);m?m.minzoom===f&&m.maxzoom===d||(f!=null&&(m.minzoom=f),d!=null&&(m.maxzoom=d),this._updateLayer(m)):this.fire(new u.j(new Error(`Cannot set the zoom range of non-existing layer "${s}".`)))}setFilter(s,f,d={}){this._checkLoaded();const m=this.getLayer(s);if(m){if(!u.aD(m.filter,f))return f==null?(m.filter=void 0,void this._updateLayer(m)):void(this._validate(u.x.filter,`layers.${m.id}.filter`,f,null,d)||(m.filter=u.aA(f),this._updateLayer(m)))}else this.fire(new u.j(new Error(`Cannot filter non-existing layer "${s}".`)))}getFilter(s){return u.aA(this.getLayer(s).filter)}setLayoutProperty(s,f,d,m={}){this._checkLoaded();const v=this.getLayer(s);v?u.aD(v.getLayoutProperty(f),d)||(v.setLayoutProperty(f,d,m),this._updateLayer(v)):this.fire(new u.j(new Error(`Cannot style non-existing layer "${s}".`)))}getLayoutProperty(s,f){const d=this.getLayer(s);if(d)return d.getLayoutProperty(f);this.fire(new u.j(new Error(`Cannot get style of non-existing layer "${s}".`)))}setPaintProperty(s,f,d,m={}){this._checkLoaded();const v=this.getLayer(s);v?u.aD(v.getPaintProperty(f),d)||(v.setPaintProperty(f,d,m)&&this._updateLayer(v),this._changed=!0,this._updatedPaintProps[s]=!0,this._serializedLayers=null):this.fire(new u.j(new Error(`Cannot style non-existing layer "${s}".`)))}getPaintProperty(s,f){return this.getLayer(s).getPaintProperty(f)}setFeatureState(s,f){this._checkLoaded();const d=s.source,m=s.sourceLayer,v=this.sourceCaches[d];if(v===void 0)return void this.fire(new u.j(new Error(`The source '${d}' does not exist in the map's style.`)));const C=v.getSource().type;C==="geojson"&&m?this.fire(new u.j(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):C!=="vector"||m?(s.id===void 0&&this.fire(new u.j(new Error("The feature id parameter must be provided."))),v.setFeatureState(m,s.id,f)):this.fire(new u.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}removeFeatureState(s,f){this._checkLoaded();const d=s.source,m=this.sourceCaches[d];if(m===void 0)return void this.fire(new u.j(new Error(`The source '${d}' does not exist in the map's style.`)));const v=m.getSource().type,C=v==="vector"?s.sourceLayer:void 0;v!=="vector"||C?f&&typeof s.id!="string"&&typeof s.id!="number"?this.fire(new u.j(new Error("A feature id is required to remove its specific state property."))):m.removeFeatureState(C,s.id,f):this.fire(new u.j(new Error("The sourceLayer parameter must be provided for vector source types.")))}getFeatureState(s){this._checkLoaded();const f=s.source,d=s.sourceLayer,m=this.sourceCaches[f];if(m!==void 0)return m.getSource().type!=="vector"||d?(s.id===void 0&&this.fire(new u.j(new Error("The feature id parameter must be provided."))),m.getFeatureState(d,s.id)):void this.fire(new u.j(new Error("The sourceLayer parameter must be provided for vector source types.")));this.fire(new u.j(new Error(`The source '${f}' does not exist in the map's style.`)))}getTransition(){return u.e({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)}serialize(){if(!this._loaded)return;const s=u.aE(this.sourceCaches,v=>v.serialize()),f=this._serializeByIds(this._order),d=this.map.getTerrain()||void 0,m=this.stylesheet;return u.aF({version:m.version,name:m.name,metadata:m.metadata,light:m.light,center:m.center,zoom:m.zoom,bearing:m.bearing,pitch:m.pitch,sprite:m.sprite,glyphs:m.glyphs,transition:m.transition,sources:s,layers:f,terrain:d},v=>v!==void 0)}_updateLayer(s){this._updatedLayers[s.id]=!0,s.source&&!this._updatedSources[s.source]&&this.sourceCaches[s.source].getSource().type!=="raster"&&(this._updatedSources[s.source]="reload",this.sourceCaches[s.source].pause()),this._serializedLayers=null,this._changed=!0}_flattenAndSortRenderedFeatures(s){const f=C=>this._layers[C].type==="fill-extrusion",d={},m=[];for(let C=this._order.length-1;C>=0;C--){const T=this._order[C];if(f(T)){d[T]=C;for(const P of s){const R=P[T];if(R)for(const B of R)m.push(B)}}}m.sort((C,T)=>T.intersectionZ-C.intersectionZ);const v=[];for(let C=this._order.length-1;C>=0;C--){const T=this._order[C];if(f(T))for(let P=m.length-1;P>=0;P--){const R=m[P].feature;if(d[R.layer.id]{const ne=wt.featureSortOrder;if(ne){const ee=ne.indexOf(Ut.featureIndex);return ne.indexOf($t.featureIndex)-ee}return $t.featureIndex-Ut.featureIndex});for(const Ut of Ft)Mt.push(Ut)}}for(const wt in it)it[wt].forEach(zt=>{const ht=zt.feature,Mt=R[T[wt].source].getFeatureState(ht.layer["source-layer"],ht.id);ht.source=ht.layer.source,ht.layer["source-layer"]&&(ht.sourceLayer=ht.layer["source-layer"]),ht.state=Mt});return it}(this._layers,C,this.sourceCaches,s,f,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(v)}querySourceFeatures(s,f){f&&f.filter&&this._validate(u.x.filter,"querySourceFeatures.filter",f.filter,null,f);const d=this.sourceCaches[s];return d?function(m,v){const C=m.getRenderableIds().map(R=>m.getTileByID(R)),T=[],P={};for(let R=0;RX.getTileByID(rt)).sort((rt,it)=>it.tileID.overscaledZ-rt.tileID.overscaledZ||(rt.tileID.isLessThan(it.tileID)?-1:1))}const U=this.crossTileSymbolIndex.addLayer(B,P[B.source],s.center.lng);C=C||U}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((v=v||this._layerOrderChanged||d===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(E.now(),s.zoom))&&(this.pauseablePlacement=new os(s,this.map.terrain,this._order,v,f,d,m,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,P),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(E.now()),T=!0),C&&this.pauseablePlacement.placement.setStale()),T||C)for(const R of this._order){const B=this._layers[R];B.type==="symbol"&&this.placement.updateLayerOpacities(B,P[B.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(E.now())}_releaseSymbolFadeTiles(){for(const s in this.sourceCaches)this.sourceCaches[s].releaseSymbolFadeTiles()}getImages(s,f){return u._(this,void 0,void 0,function*(){const d=yield this.imageManager.getImages(f.icons);this._updateTilesForChangedImages();const m=this.sourceCaches[f.source];return m&&m.setDependencies(f.tileID.key,f.type,f.icons),d})}getGlyphs(s,f){return u._(this,void 0,void 0,function*(){const d=yield this.glyphManager.getGlyphs(f.stacks),m=this.sourceCaches[f.source];return m&&m.setDependencies(f.tileID.key,f.type,[""]),d})}getGlyphsUrl(){return this.stylesheet.glyphs||null}setGlyphs(s,f={}){this._checkLoaded(),s&&this._validate(u.x.glyphs,"glyphs",s,null,f)||(this._glyphsDidChange=!0,this.stylesheet.glyphs=s,this.glyphManager.entries={},this.glyphManager.setURL(s))}addSprite(s,f,d={},m){this._checkLoaded();const v=[{id:s,url:f}],C=[...kt(this.stylesheet.sprite),...v];this._validate(u.x.sprite,"sprite",C,null,d)||(this.stylesheet.sprite=C,this._loadSprite(v,!0,m))}removeSprite(s){this._checkLoaded();const f=kt(this.stylesheet.sprite);if(f.find(d=>d.id===s)){if(this._spritesImagesIds[s])for(const d of this._spritesImagesIds[s])this.imageManager.removeImage(d),this._changedImages[d]=!0;f.splice(f.findIndex(d=>d.id===s),1),this.stylesheet.sprite=f.length>0?f:void 0,delete this._spritesImagesIds[s],this._availableImages=this.imageManager.listImages(),this._changed=!0,this.dispatcher.broadcast("SI",this._availableImages),this.fire(new u.k("data",{dataType:"style"}))}else this.fire(new u.j(new Error(`Sprite "${s}" doesn't exists on this map.`)))}getSprite(){return kt(this.stylesheet.sprite)}setSprite(s,f={},d){this._checkLoaded(),s&&this._validate(u.x.sprite,"sprite",s,null,f)||(this.stylesheet.sprite=s,s?this._loadSprite(s,!0,d):(this._unloadSprite(),d&&d(null)))}}var Uc=u.X([{name:"a_pos",type:"Int16",components:2}]),qs="attribute vec3 a_pos3d;uniform mat4 u_matrix;uniform float u_ele_delta;varying vec2 v_texture_pos;varying float v_depth;void main() {float extent=8192.0;float ele_delta=a_pos3d.z==1.0 ? u_ele_delta : 0.0;v_texture_pos=a_pos3d.xy/extent;gl_Position=u_matrix*vec4(a_pos3d.xy,get_elevation(a_pos3d.xy)-ele_delta,1.0);v_depth=gl_Position.z/gl_Position.w;}";const Wu={prelude:Wn(`#ifdef GL_ES -precision mediump float; -#else -#if !defined(lowp) -#define lowp -#endif -#if !defined(mediump) -#define mediump -#endif -#if !defined(highp) -#define highp -#endif -#endif -`,`#ifdef GL_ES -precision highp float; -#else -#if !defined(lowp) -#define lowp -#endif -#if !defined(mediump) -#define mediump -#endif -#if !defined(highp) -#define highp -#endif -#endif -vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0 -);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;} -#ifdef TERRAIN3D -uniform sampler2D u_terrain;uniform float u_terrain_dim;uniform mat4 u_terrain_matrix;uniform vec4 u_terrain_unpack;uniform float u_terrain_exaggeration;uniform highp sampler2D u_depth; -#endif -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) { -#ifdef TERRAIN3D -highp float d=unpack(texture2D(u_depth,frag.xy*0.5+0.5))+0.0001-frag.z;return 1.0-max(0.0,min(1.0,-d*500.0)); -#else -return 1.0; -#endif -}float calculate_visibility(vec4 pos) { -#ifdef TERRAIN3D -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; -#else -return 1.0; -#endif -}float ele(vec2 pos) { -#ifdef TERRAIN3D -vec4 rgb=(texture2D(u_terrain,pos)*255.0)*u_terrain_unpack;return rgb.r+rgb.g+rgb.b-u_terrain_unpack.a; -#else -return 0.0; -#endif -}float get_elevation(vec2 pos) { -#ifdef TERRAIN3D -vec2 coord=(u_terrain_matrix*vec4(pos,0.0,1.0)).xy*u_terrain_dim+1.0;vec2 f=fract(coord);vec2 c=(floor(coord)+0.5)/(u_terrain_dim+2.0);float d=1.0/(u_terrain_dim+2.0);float tl=ele(c);float tr=ele(c+vec2(d,0.0));float bl=ele(c+vec2(0.0,d));float br=ele(c+vec2(d,d));float elevation=mix(mix(tl,tr,f.x),mix(bl,br,f.x),f.y);return elevation*u_terrain_exaggeration; -#else -return 0.0; -#endif -}`),background:Wn(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),backgroundPattern:Wn(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),circle:Wn(`varying vec3 v_data;varying float v_visibility; -#pragma mapbox: define highp vec4 color -#pragma mapbox: define mediump float radius -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -#pragma mapbox: define highp vec4 stroke_color -#pragma mapbox: define mediump float stroke_width -#pragma mapbox: define lowp float stroke_opacity -void main() { -#pragma mapbox: initialize highp vec4 color -#pragma mapbox: initialize mediump float radius -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize highp vec4 stroke_color -#pragma mapbox: initialize mediump float stroke_width -#pragma mapbox: initialize lowp float stroke_opacity -vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius/(radius+stroke_width));gl_FragColor=v_visibility*opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data;varying float v_visibility; -#pragma mapbox: define highp vec4 color -#pragma mapbox: define mediump float radius -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -#pragma mapbox: define highp vec4 stroke_color -#pragma mapbox: define mediump float stroke_width -#pragma mapbox: define lowp float stroke_opacity -void main(void) { -#pragma mapbox: initialize highp vec4 color -#pragma mapbox: initialize mediump float radius -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize highp vec4 stroke_color -#pragma mapbox: initialize mediump float stroke_width -#pragma mapbox: initialize lowp float stroke_opacity -vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);float ele=get_elevation(circle_center);v_visibility=calculate_visibility(u_matrix*vec4(circle_center,ele,1.0));if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,ele,1);} else {gl_Position=u_matrix*vec4(circle_center,ele,1);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;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),clippingMask:Wn("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),heatmap:Wn(`uniform highp float u_intensity;varying vec2 v_extrude; -#pragma mapbox: define highp float weight -#define GAUSS_COEF 0.3989422804014327 -void main() { -#pragma mapbox: initialize highp float weight -float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude; -#pragma mapbox: define highp float weight -#pragma mapbox: define mediump float radius -const highp float ZERO=1.0/255.0/16.0; -#define GAUSS_COEF 0.3989422804014327 -void main(void) { -#pragma mapbox: initialize highp float weight -#pragma mapbox: initialize mediump float radius -vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}`),heatmapTexture:Wn(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(0.0); -#endif -}`,"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),collisionBox:Wn("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,get_elevation(a_pos),1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),collisionCircle:Wn("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),debug:Wn("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,get_elevation(a_pos),1);}"),fill:Wn(`#pragma mapbox: define highp vec4 color -#pragma mapbox: define lowp float opacity -void main() { -#pragma mapbox: initialize highp vec4 color -#pragma mapbox: initialize lowp float opacity -gl_FragColor=color*opacity; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`attribute vec2 a_pos;uniform mat4 u_matrix; -#pragma mapbox: define highp vec4 color -#pragma mapbox: define lowp float opacity -void main() { -#pragma mapbox: initialize highp vec4 color -#pragma mapbox: initialize lowp float opacity -gl_Position=u_matrix*vec4(a_pos,0,1);}`),fillOutline:Wn(`varying vec2 v_pos; -#pragma mapbox: define highp vec4 outline_color -#pragma mapbox: define lowp float opacity -void main() { -#pragma mapbox: initialize highp vec4 outline_color -#pragma mapbox: initialize lowp float opacity -float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; -#pragma mapbox: define highp vec4 outline_color -#pragma mapbox: define lowp float opacity -void main() { -#pragma mapbox: initialize highp vec4 outline_color -#pragma mapbox: initialize lowp float opacity -gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillOutlinePattern:Wn(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; -#pragma mapbox: define lowp float opacity -#pragma mapbox: define lowp vec4 pattern_from -#pragma mapbox: define lowp vec4 pattern_to -void main() { -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize mediump vec4 pattern_from -#pragma mapbox: initialize mediump vec4 pattern_to -vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; -#pragma mapbox: define lowp float opacity -#pragma mapbox: define lowp vec4 pattern_from -#pragma mapbox: define lowp vec4 pattern_to -#pragma mapbox: define lowp float pixel_ratio_from -#pragma mapbox: define lowp float pixel_ratio_to -void main() { -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize mediump vec4 pattern_from -#pragma mapbox: initialize mediump vec4 pattern_to -#pragma mapbox: initialize lowp float pixel_ratio_from -#pragma mapbox: initialize lowp float pixel_ratio_to -vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),fillPattern:Wn(`#ifdef GL_ES -precision highp float; -#endif -uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b; -#pragma mapbox: define lowp float opacity -#pragma mapbox: define lowp vec4 pattern_from -#pragma mapbox: define lowp vec4 pattern_to -void main() { -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize mediump vec4 pattern_from -#pragma mapbox: initialize mediump vec4 pattern_to -vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b; -#pragma mapbox: define lowp float opacity -#pragma mapbox: define lowp vec4 pattern_from -#pragma mapbox: define lowp vec4 pattern_to -#pragma mapbox: define lowp float pixel_ratio_from -#pragma mapbox: define lowp float pixel_ratio_to -void main() { -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize mediump vec4 pattern_from -#pragma mapbox: initialize mediump vec4 pattern_to -#pragma mapbox: initialize lowp float pixel_ratio_from -#pragma mapbox: initialize lowp float pixel_ratio_to -vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),fillExtrusion:Wn(`varying vec4 v_color;void main() {gl_FragColor=v_color; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed; -#ifdef TERRAIN3D -attribute vec2 a_centroid; -#endif -varying vec4 v_color; -#pragma mapbox: define highp float base -#pragma mapbox: define highp float height -#pragma mapbox: define highp vec4 color -void main() { -#pragma mapbox: initialize highp float base -#pragma mapbox: initialize highp float height -#pragma mapbox: initialize highp vec4 color -vec3 normal=a_normal_ed.xyz; -#ifdef TERRAIN3D -float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0); -#else -float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0; -#endif -base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}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:Wn(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; -#pragma mapbox: define lowp float base -#pragma mapbox: define lowp float height -#pragma mapbox: define lowp vec4 pattern_from -#pragma mapbox: define lowp vec4 pattern_to -#pragma mapbox: define lowp float pixel_ratio_from -#pragma mapbox: define lowp float pixel_ratio_to -void main() { -#pragma mapbox: initialize lowp float base -#pragma mapbox: initialize lowp float height -#pragma mapbox: initialize mediump vec4 pattern_from -#pragma mapbox: initialize mediump vec4 pattern_to -#pragma mapbox: initialize lowp float pixel_ratio_from -#pragma mapbox: initialize lowp float pixel_ratio_to -vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed; -#ifdef TERRAIN3D -attribute vec2 a_centroid; -#endif -varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; -#pragma mapbox: define lowp float base -#pragma mapbox: define lowp float height -#pragma mapbox: define lowp vec4 pattern_from -#pragma mapbox: define lowp vec4 pattern_to -#pragma mapbox: define lowp float pixel_ratio_from -#pragma mapbox: define lowp float pixel_ratio_to -void main() { -#pragma mapbox: initialize lowp float base -#pragma mapbox: initialize lowp float height -#pragma mapbox: initialize mediump vec4 pattern_from -#pragma mapbox: initialize mediump vec4 pattern_to -#pragma mapbox: initialize lowp float pixel_ratio_from -#pragma mapbox: initialize lowp float pixel_ratio_to -vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=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; -#ifdef TERRAIN3D -float height_terrain3d_offset=get_elevation(a_centroid);float base_terrain3d_offset=height_terrain3d_offset-(base > 0.0 ? 0.0 : 10.0); -#else -float height_terrain3d_offset=0.0;float base_terrain3d_offset=0.0; -#endif -base=max(0.0,base)+base_terrain3d_offset;height=max(0.0,height)+height_terrain3d_offset;float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 -? a_pos -: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}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:Wn(`#ifdef GL_ES -precision highp float; -#endif -uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),hillshade:Wn(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent; -#define PI 3.141592653589793 -void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),line:Wn(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale; -#pragma mapbox: define highp vec4 color -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -void main() { -#pragma mapbox: initialize highp vec4 color -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,` -#define scale 0.015873016 -attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar; -#pragma mapbox: define highp vec4 color -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -#pragma mapbox: define mediump float gapwidth -#pragma mapbox: define lowp float offset -#pragma mapbox: define mediump float width -void main() { -#pragma mapbox: initialize highp vec4 color -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize mediump float gapwidth -#pragma mapbox: initialize lowp float offset -#pragma mapbox: initialize mediump float width -float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_width2=vec2(outset,inset);}`),lineGradient:Wn(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv; -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -void main() { -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,` -#define scale 0.015873016 -attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv; -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -#pragma mapbox: define mediump float gapwidth -#pragma mapbox: define lowp float offset -#pragma mapbox: define mediump float width -void main() { -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize mediump float gapwidth -#pragma mapbox: initialize lowp float offset -#pragma mapbox: initialize mediump float width -float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;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=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_width2=vec2(outset,inset);}`),linePattern:Wn(`#ifdef GL_ES -precision highp float; -#endif -uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; -#pragma mapbox: define lowp vec4 pattern_from -#pragma mapbox: define lowp vec4 pattern_to -#pragma mapbox: define lowp float pixel_ratio_from -#pragma mapbox: define lowp float pixel_ratio_to -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -void main() { -#pragma mapbox: initialize mediump vec4 pattern_from -#pragma mapbox: initialize mediump vec4 pattern_to -#pragma mapbox: initialize lowp float pixel_ratio_from -#pragma mapbox: initialize lowp float pixel_ratio_to -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,` -#define scale 0.015873016 -#define LINE_DISTANCE_SCALE 2.0 -attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -#pragma mapbox: define lowp float offset -#pragma mapbox: define mediump float gapwidth -#pragma mapbox: define mediump float width -#pragma mapbox: define lowp float floorwidth -#pragma mapbox: define lowp vec4 pattern_from -#pragma mapbox: define lowp vec4 pattern_to -#pragma mapbox: define lowp float pixel_ratio_from -#pragma mapbox: define lowp float pixel_ratio_to -void main() { -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize lowp float offset -#pragma mapbox: initialize mediump float gapwidth -#pragma mapbox: initialize mediump float width -#pragma mapbox: initialize lowp float floorwidth -#pragma mapbox: initialize mediump vec4 pattern_from -#pragma mapbox: initialize mediump vec4 pattern_to -#pragma mapbox: initialize lowp float pixel_ratio_from -#pragma mapbox: initialize lowp float pixel_ratio_to -float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),lineSDF:Wn(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; -#pragma mapbox: define highp vec4 color -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -#pragma mapbox: define mediump float width -#pragma mapbox: define lowp float floorwidth -void main() { -#pragma mapbox: initialize highp vec4 color -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize mediump float width -#pragma mapbox: initialize lowp float floorwidth -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=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,` -#define scale 0.015873016 -#define LINE_DISTANCE_SCALE 2.0 -attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; -#pragma mapbox: define highp vec4 color -#pragma mapbox: define lowp float blur -#pragma mapbox: define lowp float opacity -#pragma mapbox: define mediump float gapwidth -#pragma mapbox: define lowp float offset -#pragma mapbox: define mediump float width -#pragma mapbox: define lowp float floorwidth -void main() { -#pragma mapbox: initialize highp vec4 color -#pragma mapbox: initialize lowp float blur -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize mediump float gapwidth -#pragma mapbox: initialize lowp float offset -#pragma mapbox: initialize mediump float width -#pragma mapbox: initialize lowp float floorwidth -float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude; -#ifdef TERRAIN3D -v_gamma_scale=1.0; -#else -float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective; -#endif -v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),raster:Wn(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),symbolIcon:Wn(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; -#pragma mapbox: define lowp float opacity -void main() { -#pragma mapbox: initialize lowp float opacity -lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity; -#pragma mapbox: define lowp float opacity -void main() { -#pragma mapbox: initialize lowp float opacity -vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;float ele=get_elevation(a_pos);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;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? -camera_to_anchor_distance/u_camera_to_center_distance : -u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);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=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),z,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float visibility=calculate_visibility(projectedPoint);v_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));}`),symbolSDF:Wn(`#define SDF_PX 8.0 -uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; -#pragma mapbox: define highp vec4 fill_color -#pragma mapbox: define highp vec4 halo_color -#pragma mapbox: define lowp float opacity -#pragma mapbox: define lowp float halo_width -#pragma mapbox: define lowp float halo_blur -void main() { -#pragma mapbox: initialize highp vec4 fill_color -#pragma mapbox: initialize highp vec4 halo_color -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize lowp float halo_width -#pragma mapbox: initialize lowp float halo_blur -float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float inner_edge=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);inner_edge=inner_edge+gamma*gamma_scale;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(inner_edge-gamma_scaled,inner_edge+gamma_scaled,dist);if (u_is_halo) {lowp float halo_edge=(6.0-halo_width/fontScale)/SDF_PX;alpha=min(smoothstep(halo_edge-gamma_scaled,halo_edge+gamma_scaled,dist),1.0-alpha);}gl_FragColor=color*(alpha*opacity*fade_opacity); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1; -#pragma mapbox: define highp vec4 fill_color -#pragma mapbox: define highp vec4 halo_color -#pragma mapbox: define lowp float opacity -#pragma mapbox: define lowp float halo_width -#pragma mapbox: define lowp float halo_blur -void main() { -#pragma mapbox: initialize highp vec4 fill_color -#pragma mapbox: initialize highp vec4 halo_color -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize lowp float halo_width -#pragma mapbox: initialize lowp float halo_blur -vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;float ele=get_elevation(a_pos);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;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? -camera_to_anchor_distance/u_camera_to_center_distance : -u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);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=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),symbolTextAndIcon:Wn(`#define SDF_PX 8.0 -#define SDF 1.0 -#define ICON 0.0 -uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; -#pragma mapbox: define highp vec4 fill_color -#pragma mapbox: define highp vec4 halo_color -#pragma mapbox: define lowp float opacity -#pragma mapbox: define lowp float halo_width -#pragma mapbox: define lowp float halo_blur -void main() { -#pragma mapbox: initialize highp vec4 fill_color -#pragma mapbox: initialize highp vec4 halo_color -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize lowp float halo_width -#pragma mapbox: initialize lowp float halo_blur -float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); -#ifdef OVERDRAW_INSPECTOR -gl_FragColor=vec4(1.0); -#endif -}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1; -#pragma mapbox: define highp vec4 fill_color -#pragma mapbox: define highp vec4 halo_color -#pragma mapbox: define lowp float opacity -#pragma mapbox: define lowp float halo_width -#pragma mapbox: define lowp float halo_blur -void main() { -#pragma mapbox: initialize highp vec4 fill_color -#pragma mapbox: initialize highp vec4 halo_color -#pragma mapbox: initialize lowp float opacity -#pragma mapbox: initialize lowp float halo_width -#pragma mapbox: initialize lowp float halo_blur -vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;float ele=get_elevation(a_pos);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;}vec4 projectedPoint=u_matrix*vec4(a_pos,ele,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? -camera_to_anchor_distance/u_camera_to_center_distance : -u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),ele,1);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=u_label_plane_matrix*vec4(a_projected_pos.xy,ele,1.0);float z=float(u_pitch_with_map)*projected_pos.z/projected_pos.w;gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),z,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float visibility=calculate_visibility(projectedPoint);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(visibility,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`),terrain:Wn("uniform sampler2D u_texture;varying vec2 v_texture_pos;void main() {gl_FragColor=texture2D(u_texture,v_texture_pos);}",qs),terrainDepth:Wn("varying 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() {gl_FragColor=pack(v_depth);}",qs),terrainCoords:Wn("precision mediump float;uniform sampler2D u_texture;uniform float u_terrain_coords_id;varying vec2 v_texture_pos;void main() {vec4 rgba=texture2D(u_texture,v_texture_pos);gl_FragColor=vec4(rgba.r,rgba.g,rgba.b,u_terrain_coords_id);}",qs)};function Wn(y,s){const f=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,d=s.match(/attribute ([\w]+) ([\w]+)/g),m=y.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),v=s.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),C=v?v.concat(m):m,T={};return{fragmentSource:y=y.replace(f,(P,R,B,U,X)=>(T[X]=!0,R==="define"?` -#ifndef HAS_UNIFORM_u_${X} -varying ${B} ${U} ${X}; -#else -uniform ${B} ${U} u_${X}; -#endif -`:` -#ifdef HAS_UNIFORM_u_${X} - ${B} ${U} ${X} = u_${X}; -#endif -`)),vertexSource:s=s.replace(f,(P,R,B,U,X)=>{const rt=U==="float"?"vec2":"vec4",it=X.match(/color/)?"color":rt;return T[X]?R==="define"?` -#ifndef HAS_UNIFORM_u_${X} -uniform lowp float u_${X}_t; -attribute ${B} ${rt} a_${X}; -varying ${B} ${U} ${X}; -#else -uniform ${B} ${U} u_${X}; -#endif -`:it==="vec4"?` -#ifndef HAS_UNIFORM_u_${X} - ${X} = a_${X}; -#else - ${B} ${U} ${X} = u_${X}; -#endif -`:` -#ifndef HAS_UNIFORM_u_${X} - ${X} = unpack_mix_${it}(a_${X}, u_${X}_t); -#else - ${B} ${U} ${X} = u_${X}; -#endif -`:R==="define"?` -#ifndef HAS_UNIFORM_u_${X} -uniform lowp float u_${X}_t; -attribute ${B} ${rt} a_${X}; -#else -uniform ${B} ${U} u_${X}; -#endif -`:it==="vec4"?` -#ifndef HAS_UNIFORM_u_${X} - ${B} ${U} ${X} = a_${X}; -#else - ${B} ${U} ${X} = u_${X}; -#endif -`:` -#ifndef HAS_UNIFORM_u_${X} - ${B} ${U} ${X} = unpack_mix_${it}(a_${X}, u_${X}_t); -#else - ${B} ${U} ${X} = u_${X}; -#endif -`}),staticAttributes:d,staticUniforms:C}}class Gc{constructor(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null}bind(s,f,d,m,v,C,T,P,R){this.context=s;let B=this.boundPaintVertexBuffers.length!==m.length;for(let U=0;!B&&U({u_depth:new u.aG(Ut,$t.u_depth),u_terrain:new u.aG(Ut,$t.u_terrain),u_terrain_dim:new u.aH(Ut,$t.u_terrain_dim),u_terrain_matrix:new u.aI(Ut,$t.u_terrain_matrix),u_terrain_unpack:new u.aJ(Ut,$t.u_terrain_unpack),u_terrain_exaggeration:new u.aH(Ut,$t.u_terrain_exaggeration)}))(s,Ft),this.binderUniforms=d?d.getUniforms(s,Ft):[]}draw(s,f,d,m,v,C,T,P,R,B,U,X,rt,it,ct,tt,wt,zt){const ht=s.gl;if(this.failedToCreate)return;if(s.program.set(this.program),s.setDepthMode(d),s.setStencilMode(m),s.setColorMode(v),s.setCullFace(C),P){s.activeTexture.set(ht.TEXTURE2),ht.bindTexture(ht.TEXTURE_2D,P.depthTexture),s.activeTexture.set(ht.TEXTURE3),ht.bindTexture(ht.TEXTURE_2D,P.texture);for(const Ft in this.terrainUniforms)this.terrainUniforms[Ft].set(P[Ft])}for(const Ft in this.fixedUniforms)this.fixedUniforms[Ft].set(T[Ft]);ct&&ct.setUniforms(s,this.binderUniforms,rt,{zoom:it});let Mt=0;switch(f){case ht.LINES:Mt=2;break;case ht.TRIANGLES:Mt=3;break;case ht.LINE_STRIP:Mt=1}for(const Ft of X.get()){const Ut=Ft.vaos||(Ft.vaos={});(Ut[R]||(Ut[R]=new Gc)).bind(s,this,B,ct?ct.getPaintVertexBuffers():[],U,Ft.vertexOffset,tt,wt,zt),ht.drawElements(f,Ft.primitiveLength*Mt,ht.UNSIGNED_SHORT,Ft.primitiveOffset*Mt*2)}}}function jc(y,s,f){const d=1/rn(f,1,s.transform.tileZoom),m=Math.pow(2,f.tileID.overscaledZ),v=f.tileSize*Math.pow(2,s.transform.tileZoom)/m,C=v*(f.tileID.canonical.x+f.tileID.wrap*m),T=v*f.tileID.canonical.y;return{u_image:0,u_texsize:f.imageAtlasTexture.size,u_scale:[d,y.fromScale,y.toScale],u_fade:y.t,u_pixel_coord_upper:[C>>16,T>>16],u_pixel_coord_lower:[65535&C,65535&T]}}const Hu=(y,s,f,d)=>{const m=s.style.light,v=m.properties.get("position"),C=[v.x,v.y,v.z],T=function(){var R=new u.A(9);return u.A!=Float32Array&&(R[1]=0,R[2]=0,R[3]=0,R[5]=0,R[6]=0,R[7]=0),R[0]=1,R[4]=1,R[8]=1,R}();m.properties.get("anchor")==="viewport"&&function(R,B){var U=Math.sin(B),X=Math.cos(B);R[0]=X,R[1]=U,R[2]=0,R[3]=-U,R[4]=X,R[5]=0,R[6]=0,R[7]=0,R[8]=1}(T,-s.transform.angle),function(R,B,U){var X=B[0],rt=B[1],it=B[2];R[0]=X*U[0]+rt*U[3]+it*U[6],R[1]=X*U[1]+rt*U[4]+it*U[7],R[2]=X*U[2]+rt*U[5]+it*U[8]}(C,C,T);const P=m.properties.get("color");return{u_matrix:y,u_lightpos:C,u_lightintensity:m.properties.get("intensity"),u_lightcolor:[P.r,P.g,P.b],u_vertical_gradient:+f,u_opacity:d}},Wg=(y,s,f,d,m,v,C)=>u.e(Hu(y,s,f,d),jc(v,s,C),{u_height_factor:-Math.pow(2,m.overscaledZ)/C.tileSize/8}),Cd=y=>({u_matrix:y}),qc=(y,s,f,d)=>u.e(Cd(y),jc(f,s,d)),Hg=(y,s)=>({u_matrix:y,u_world:s}),Td=(y,s,f,d,m)=>u.e(qc(y,s,f,d),{u_world:m}),Xg=(y,s,f,d)=>{const m=y.transform;let v,C;if(d.paint.get("circle-pitch-alignment")==="map"){const T=rn(f,1,m.zoom);v=!0,C=[T,T]}else v=!1,C=m.pixelsToGLUnits;return{u_camera_to_center_distance:m.cameraToCenterDistance,u_scale_with_map:+(d.paint.get("circle-pitch-scale")==="map"),u_matrix:y.translatePosMatrix(s.posMatrix,f,d.paint.get("circle-translate"),d.paint.get("circle-translate-anchor")),u_pitch_with_map:+v,u_device_pixel_ratio:y.pixelRatio,u_extrude_scale:C}},Ld=(y,s,f)=>{const d=rn(f,1,s.zoom),m=Math.pow(2,s.zoom-f.tileID.overscaledZ),v=f.tileID.overscaleFactor();return{u_matrix:y,u_camera_to_center_distance:s.cameraToCenterDistance,u_pixels_to_tile_units:d,u_extrude_scale:[s.pixelsToGLUnits[0]/(d*m),s.pixelsToGLUnits[1]/(d*m)],u_overscale_factor:v}},Md=(y,s,f=1)=>({u_matrix:y,u_color:s,u_overlay:0,u_overlay_scale:f}),Zc=y=>({u_matrix:y}),Pd=(y,s,f,d)=>({u_matrix:y,u_extrude_scale:rn(s,1,f),u_intensity:d});function kd(y,s){const f=Math.pow(2,s.canonical.z),d=s.canonical.y;return[new u.Y(0,d/f).toLngLat().lat,new u.Y(0,(d+1)/f).toLngLat().lat]}const Wc=(y,s,f,d)=>{const m=y.transform;return{u_matrix:Xu(y,s,f,d),u_ratio:1/rn(s,1,m.zoom),u_device_pixel_ratio:y.pixelRatio,u_units_to_pixels:[1/m.pixelsToGLUnits[0],1/m.pixelsToGLUnits[1]]}},Ad=(y,s,f,d,m)=>u.e(Wc(y,s,f,m),{u_image:0,u_image_height:d}),bl=(y,s,f,d,m)=>{const v=y.transform,C=Oo(s,v);return{u_matrix:Xu(y,s,f,m),u_texsize:s.imageAtlasTexture.size,u_ratio:1/rn(s,1,v.zoom),u_device_pixel_ratio:y.pixelRatio,u_image:0,u_scale:[C,d.fromScale,d.toScale],u_fade:d.t,u_units_to_pixels:[1/v.pixelsToGLUnits[0],1/v.pixelsToGLUnits[1]]}},Hc=(y,s,f,d,m,v)=>{const C=y.lineAtlas,T=Oo(s,y.transform),P=f.layout.get("line-cap")==="round",R=C.getDash(d.from,P),B=C.getDash(d.to,P),U=R.width*m.fromScale,X=B.width*m.toScale;return u.e(Wc(y,s,f,v),{u_patternscale_a:[T/U,-R.height/2],u_patternscale_b:[T/X,-B.height/2],u_sdfgamma:C.width/(256*Math.min(U,X)*y.pixelRatio)/2,u_image:0,u_tex_y_a:R.y,u_tex_y_b:B.y,u_mix:m.t})};function Oo(y,s){return 1/rn(y,1,s.tileZoom)}function Xu(y,s,f,d){return y.translatePosMatrix(d?d.posMatrix:s.tileID.posMatrix,s,f.paint.get("line-translate"),f.paint.get("line-translate-anchor"))}const Xc=(y,s,f,d,m)=>{return{u_matrix:y,u_tl_parent:s,u_scale_parent:f,u_buffer_scale:1,u_fade_t:d.mix,u_opacity:d.opacity*m.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:m.paint.get("raster-brightness-min"),u_brightness_high:m.paint.get("raster-brightness-max"),u_saturation_factor:(C=m.paint.get("raster-saturation"),C>0?1-1/(1.001-C):-C),u_contrast_factor:(v=m.paint.get("raster-contrast"),v>0?1/(1-v):1+v),u_spin_weights:$u(m.paint.get("raster-hue-rotate"))};var v,C};function $u(y){y*=Math.PI/180;const s=Math.sin(y),f=Math.cos(y);return[(2*f+1)/3,(-Math.sqrt(3)*s-f+1)/3,(Math.sqrt(3)*s-f+1)/3]}const Yu=(y,s,f,d,m,v,C,T,P,R)=>{const B=m.transform;return{u_is_size_zoom_constant:+(y==="constant"||y==="source"),u_is_size_feature_constant:+(y==="constant"||y==="camera"),u_size_t:s?s.uSizeT:0,u_size:s?s.uSize:0,u_camera_to_center_distance:B.cameraToCenterDistance,u_pitch:B.pitch/360*2*Math.PI,u_rotate_symbol:+f,u_aspect_ratio:B.width/B.height,u_fade_change:m.options.fadeDuration?m.symbolFadeChange:1,u_matrix:v,u_label_plane_matrix:C,u_coord_matrix:T,u_is_text:+P,u_pitch_with_map:+d,u_texsize:R,u_texture:0}},Ku=(y,s,f,d,m,v,C,T,P,R,B)=>{const U=m.transform;return u.e(Yu(y,s,f,d,m,v,C,T,P,R),{u_gamma_scale:d?Math.cos(U._pitch)*U.cameraToCenterDistance:1,u_device_pixel_ratio:m.pixelRatio,u_is_halo:+B})},Ju=(y,s,f,d,m,v,C,T,P,R)=>u.e(Ku(y,s,f,d,m,v,C,T,!0,P,!0),{u_texsize_icon:R,u_texture_icon:1}),$g=(y,s,f)=>({u_matrix:y,u_opacity:s,u_color:f}),Yg=(y,s,f,d,m,v)=>u.e(function(C,T,P,R){const B=P.imageManager.getPattern(C.from.toString()),U=P.imageManager.getPattern(C.to.toString()),{width:X,height:rt}=P.imageManager.getPixelSize(),it=Math.pow(2,R.tileID.overscaledZ),ct=R.tileSize*Math.pow(2,P.transform.tileZoom)/it,tt=ct*(R.tileID.canonical.x+R.tileID.wrap*it),wt=ct*R.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:B.tl,u_pattern_br_a:B.br,u_pattern_tl_b:U.tl,u_pattern_br_b:U.br,u_texsize:[X,rt],u_mix:T.t,u_pattern_size_a:B.displaySize,u_pattern_size_b:U.displaySize,u_scale_a:T.fromScale,u_scale_b:T.toScale,u_tile_units_to_pixels:1/rn(R,1,P.transform.tileZoom),u_pixel_coord_upper:[tt>>16,wt>>16],u_pixel_coord_lower:[65535&tt,65535&wt]}}(d,v,f,m),{u_matrix:y,u_opacity:s}),Dd={fillExtrusion:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_lightpos:new u.aK(y,s.u_lightpos),u_lightintensity:new u.aH(y,s.u_lightintensity),u_lightcolor:new u.aK(y,s.u_lightcolor),u_vertical_gradient:new u.aH(y,s.u_vertical_gradient),u_opacity:new u.aH(y,s.u_opacity)}),fillExtrusionPattern:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_lightpos:new u.aK(y,s.u_lightpos),u_lightintensity:new u.aH(y,s.u_lightintensity),u_lightcolor:new u.aK(y,s.u_lightcolor),u_vertical_gradient:new u.aH(y,s.u_vertical_gradient),u_height_factor:new u.aH(y,s.u_height_factor),u_image:new u.aG(y,s.u_image),u_texsize:new u.aL(y,s.u_texsize),u_pixel_coord_upper:new u.aL(y,s.u_pixel_coord_upper),u_pixel_coord_lower:new u.aL(y,s.u_pixel_coord_lower),u_scale:new u.aK(y,s.u_scale),u_fade:new u.aH(y,s.u_fade),u_opacity:new u.aH(y,s.u_opacity)}),fill:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix)}),fillPattern:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_image:new u.aG(y,s.u_image),u_texsize:new u.aL(y,s.u_texsize),u_pixel_coord_upper:new u.aL(y,s.u_pixel_coord_upper),u_pixel_coord_lower:new u.aL(y,s.u_pixel_coord_lower),u_scale:new u.aK(y,s.u_scale),u_fade:new u.aH(y,s.u_fade)}),fillOutline:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_world:new u.aL(y,s.u_world)}),fillOutlinePattern:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_world:new u.aL(y,s.u_world),u_image:new u.aG(y,s.u_image),u_texsize:new u.aL(y,s.u_texsize),u_pixel_coord_upper:new u.aL(y,s.u_pixel_coord_upper),u_pixel_coord_lower:new u.aL(y,s.u_pixel_coord_lower),u_scale:new u.aK(y,s.u_scale),u_fade:new u.aH(y,s.u_fade)}),circle:(y,s)=>({u_camera_to_center_distance:new u.aH(y,s.u_camera_to_center_distance),u_scale_with_map:new u.aG(y,s.u_scale_with_map),u_pitch_with_map:new u.aG(y,s.u_pitch_with_map),u_extrude_scale:new u.aL(y,s.u_extrude_scale),u_device_pixel_ratio:new u.aH(y,s.u_device_pixel_ratio),u_matrix:new u.aI(y,s.u_matrix)}),collisionBox:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_camera_to_center_distance:new u.aH(y,s.u_camera_to_center_distance),u_pixels_to_tile_units:new u.aH(y,s.u_pixels_to_tile_units),u_extrude_scale:new u.aL(y,s.u_extrude_scale),u_overscale_factor:new u.aH(y,s.u_overscale_factor)}),collisionCircle:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_inv_matrix:new u.aI(y,s.u_inv_matrix),u_camera_to_center_distance:new u.aH(y,s.u_camera_to_center_distance),u_viewport_size:new u.aL(y,s.u_viewport_size)}),debug:(y,s)=>({u_color:new u.aM(y,s.u_color),u_matrix:new u.aI(y,s.u_matrix),u_overlay:new u.aG(y,s.u_overlay),u_overlay_scale:new u.aH(y,s.u_overlay_scale)}),clippingMask:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix)}),heatmap:(y,s)=>({u_extrude_scale:new u.aH(y,s.u_extrude_scale),u_intensity:new u.aH(y,s.u_intensity),u_matrix:new u.aI(y,s.u_matrix)}),heatmapTexture:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_world:new u.aL(y,s.u_world),u_image:new u.aG(y,s.u_image),u_color_ramp:new u.aG(y,s.u_color_ramp),u_opacity:new u.aH(y,s.u_opacity)}),hillshade:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_image:new u.aG(y,s.u_image),u_latrange:new u.aL(y,s.u_latrange),u_light:new u.aL(y,s.u_light),u_shadow:new u.aM(y,s.u_shadow),u_highlight:new u.aM(y,s.u_highlight),u_accent:new u.aM(y,s.u_accent)}),hillshadePrepare:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_image:new u.aG(y,s.u_image),u_dimension:new u.aL(y,s.u_dimension),u_zoom:new u.aH(y,s.u_zoom),u_unpack:new u.aJ(y,s.u_unpack)}),line:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_ratio:new u.aH(y,s.u_ratio),u_device_pixel_ratio:new u.aH(y,s.u_device_pixel_ratio),u_units_to_pixels:new u.aL(y,s.u_units_to_pixels)}),lineGradient:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_ratio:new u.aH(y,s.u_ratio),u_device_pixel_ratio:new u.aH(y,s.u_device_pixel_ratio),u_units_to_pixels:new u.aL(y,s.u_units_to_pixels),u_image:new u.aG(y,s.u_image),u_image_height:new u.aH(y,s.u_image_height)}),linePattern:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_texsize:new u.aL(y,s.u_texsize),u_ratio:new u.aH(y,s.u_ratio),u_device_pixel_ratio:new u.aH(y,s.u_device_pixel_ratio),u_image:new u.aG(y,s.u_image),u_units_to_pixels:new u.aL(y,s.u_units_to_pixels),u_scale:new u.aK(y,s.u_scale),u_fade:new u.aH(y,s.u_fade)}),lineSDF:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_ratio:new u.aH(y,s.u_ratio),u_device_pixel_ratio:new u.aH(y,s.u_device_pixel_ratio),u_units_to_pixels:new u.aL(y,s.u_units_to_pixels),u_patternscale_a:new u.aL(y,s.u_patternscale_a),u_patternscale_b:new u.aL(y,s.u_patternscale_b),u_sdfgamma:new u.aH(y,s.u_sdfgamma),u_image:new u.aG(y,s.u_image),u_tex_y_a:new u.aH(y,s.u_tex_y_a),u_tex_y_b:new u.aH(y,s.u_tex_y_b),u_mix:new u.aH(y,s.u_mix)}),raster:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_tl_parent:new u.aL(y,s.u_tl_parent),u_scale_parent:new u.aH(y,s.u_scale_parent),u_buffer_scale:new u.aH(y,s.u_buffer_scale),u_fade_t:new u.aH(y,s.u_fade_t),u_opacity:new u.aH(y,s.u_opacity),u_image0:new u.aG(y,s.u_image0),u_image1:new u.aG(y,s.u_image1),u_brightness_low:new u.aH(y,s.u_brightness_low),u_brightness_high:new u.aH(y,s.u_brightness_high),u_saturation_factor:new u.aH(y,s.u_saturation_factor),u_contrast_factor:new u.aH(y,s.u_contrast_factor),u_spin_weights:new u.aK(y,s.u_spin_weights)}),symbolIcon:(y,s)=>({u_is_size_zoom_constant:new u.aG(y,s.u_is_size_zoom_constant),u_is_size_feature_constant:new u.aG(y,s.u_is_size_feature_constant),u_size_t:new u.aH(y,s.u_size_t),u_size:new u.aH(y,s.u_size),u_camera_to_center_distance:new u.aH(y,s.u_camera_to_center_distance),u_pitch:new u.aH(y,s.u_pitch),u_rotate_symbol:new u.aG(y,s.u_rotate_symbol),u_aspect_ratio:new u.aH(y,s.u_aspect_ratio),u_fade_change:new u.aH(y,s.u_fade_change),u_matrix:new u.aI(y,s.u_matrix),u_label_plane_matrix:new u.aI(y,s.u_label_plane_matrix),u_coord_matrix:new u.aI(y,s.u_coord_matrix),u_is_text:new u.aG(y,s.u_is_text),u_pitch_with_map:new u.aG(y,s.u_pitch_with_map),u_texsize:new u.aL(y,s.u_texsize),u_texture:new u.aG(y,s.u_texture)}),symbolSDF:(y,s)=>({u_is_size_zoom_constant:new u.aG(y,s.u_is_size_zoom_constant),u_is_size_feature_constant:new u.aG(y,s.u_is_size_feature_constant),u_size_t:new u.aH(y,s.u_size_t),u_size:new u.aH(y,s.u_size),u_camera_to_center_distance:new u.aH(y,s.u_camera_to_center_distance),u_pitch:new u.aH(y,s.u_pitch),u_rotate_symbol:new u.aG(y,s.u_rotate_symbol),u_aspect_ratio:new u.aH(y,s.u_aspect_ratio),u_fade_change:new u.aH(y,s.u_fade_change),u_matrix:new u.aI(y,s.u_matrix),u_label_plane_matrix:new u.aI(y,s.u_label_plane_matrix),u_coord_matrix:new u.aI(y,s.u_coord_matrix),u_is_text:new u.aG(y,s.u_is_text),u_pitch_with_map:new u.aG(y,s.u_pitch_with_map),u_texsize:new u.aL(y,s.u_texsize),u_texture:new u.aG(y,s.u_texture),u_gamma_scale:new u.aH(y,s.u_gamma_scale),u_device_pixel_ratio:new u.aH(y,s.u_device_pixel_ratio),u_is_halo:new u.aG(y,s.u_is_halo)}),symbolTextAndIcon:(y,s)=>({u_is_size_zoom_constant:new u.aG(y,s.u_is_size_zoom_constant),u_is_size_feature_constant:new u.aG(y,s.u_is_size_feature_constant),u_size_t:new u.aH(y,s.u_size_t),u_size:new u.aH(y,s.u_size),u_camera_to_center_distance:new u.aH(y,s.u_camera_to_center_distance),u_pitch:new u.aH(y,s.u_pitch),u_rotate_symbol:new u.aG(y,s.u_rotate_symbol),u_aspect_ratio:new u.aH(y,s.u_aspect_ratio),u_fade_change:new u.aH(y,s.u_fade_change),u_matrix:new u.aI(y,s.u_matrix),u_label_plane_matrix:new u.aI(y,s.u_label_plane_matrix),u_coord_matrix:new u.aI(y,s.u_coord_matrix),u_is_text:new u.aG(y,s.u_is_text),u_pitch_with_map:new u.aG(y,s.u_pitch_with_map),u_texsize:new u.aL(y,s.u_texsize),u_texsize_icon:new u.aL(y,s.u_texsize_icon),u_texture:new u.aG(y,s.u_texture),u_texture_icon:new u.aG(y,s.u_texture_icon),u_gamma_scale:new u.aH(y,s.u_gamma_scale),u_device_pixel_ratio:new u.aH(y,s.u_device_pixel_ratio),u_is_halo:new u.aG(y,s.u_is_halo)}),background:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_opacity:new u.aH(y,s.u_opacity),u_color:new u.aM(y,s.u_color)}),backgroundPattern:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_opacity:new u.aH(y,s.u_opacity),u_image:new u.aG(y,s.u_image),u_pattern_tl_a:new u.aL(y,s.u_pattern_tl_a),u_pattern_br_a:new u.aL(y,s.u_pattern_br_a),u_pattern_tl_b:new u.aL(y,s.u_pattern_tl_b),u_pattern_br_b:new u.aL(y,s.u_pattern_br_b),u_texsize:new u.aL(y,s.u_texsize),u_mix:new u.aH(y,s.u_mix),u_pattern_size_a:new u.aL(y,s.u_pattern_size_a),u_pattern_size_b:new u.aL(y,s.u_pattern_size_b),u_scale_a:new u.aH(y,s.u_scale_a),u_scale_b:new u.aH(y,s.u_scale_b),u_pixel_coord_upper:new u.aL(y,s.u_pixel_coord_upper),u_pixel_coord_lower:new u.aL(y,s.u_pixel_coord_lower),u_tile_units_to_pixels:new u.aH(y,s.u_tile_units_to_pixels)}),terrain:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_texture:new u.aG(y,s.u_texture),u_ele_delta:new u.aH(y,s.u_ele_delta)}),terrainDepth:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_ele_delta:new u.aH(y,s.u_ele_delta)}),terrainCoords:(y,s)=>({u_matrix:new u.aI(y,s.u_matrix),u_texture:new u.aG(y,s.u_texture),u_terrain_coords_id:new u.aH(y,s.u_terrain_coords_id),u_ele_delta:new u.aH(y,s.u_ele_delta)})};class Kg{constructor(s,f,d){this.context=s;const m=s.gl;this.buffer=m.createBuffer(),this.dynamicDraw=!!d,this.context.unbindVAO(),s.bindElementBuffer.set(this.buffer),m.bufferData(m.ELEMENT_ARRAY_BUFFER,f.arrayBuffer,this.dynamicDraw?m.DYNAMIC_DRAW:m.STATIC_DRAW),this.dynamicDraw||delete f.arrayBuffer}bind(){this.context.bindElementBuffer.set(this.buffer)}updateData(s){const f=this.context.gl;if(!this.dynamicDraw)throw new Error("Attempted to update data while not in dynamic mode.");this.context.unbindVAO(),this.bind(),f.bufferSubData(f.ELEMENT_ARRAY_BUFFER,0,s.arrayBuffer)}destroy(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)}}const xl={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"};class $c{constructor(s,f,d,m){this.length=f.length,this.attributes=d,this.itemSize=f.bytesPerElement,this.dynamicDraw=m,this.context=s;const v=s.gl;this.buffer=v.createBuffer(),s.bindVertexBuffer.set(this.buffer),v.bufferData(v.ARRAY_BUFFER,f.arrayBuffer,this.dynamicDraw?v.DYNAMIC_DRAW:v.STATIC_DRAW),this.dynamicDraw||delete f.arrayBuffer}bind(){this.context.bindVertexBuffer.set(this.buffer)}updateData(s){if(s.length!==this.length)throw new Error(`Length of new data is ${s.length}, which doesn't match current length of ${this.length}`);const f=this.context.gl;this.bind(),f.bufferSubData(f.ARRAY_BUFFER,0,s.arrayBuffer)}enableAttributes(s,f){for(let d=0;d0){const le=u.F(),pe=$t;u.aP(le,Ut.placementInvProjMatrix,y.transform.glCoordMatrix),u.aP(le,le,Ut.placementViewportMatrix),B.push({circleArray:ee,circleOffset:X,transform:pe,invTransform:le,coord:Mt}),U+=ee.length/4,X=U}ne&&R.draw(T,P.LINES,Tn.disabled,ui.disabled,y.colorModeForRenderPass(),ni.disabled,Ld($t,y.transform,Ft),y.style.map.terrain&&y.style.map.terrain.getTerrainData(Mt),f.id,ne.layoutVertexBuffer,ne.indexBuffer,ne.segments,null,y.transform.zoom,null,null,ne.collisionVertexBuffer)}if(!C||!B.length)return;const rt=y.useProgram("collisionCircle"),it=new u.aQ;it.resize(4*U),it._trim();let ct=0;for(const ht of B)for(let Mt=0;Mt=0&&(it[tt.associatedIconIndex]={shiftedAnchor:cn,angle:me})}else Yt(tt.numGlyphs,X)}if(R){rt.clear();const ct=y.icon.placedSymbolArray;for(let tt=0;tty.style.map.terrain.getElevation(ne,as,rr):null,Ii=f.layout.get("text-rotation-alignment")==="map";W(le,ne.posMatrix,y,m,Fo,Xs,tt,R,Ii,ir)}const Ka=y.translatePosMatrix(ne.posMatrix,ee,v,C),$s=wt||m&&Ut||fc?Ff:Fo,nr=y.translatePosMatrix(Xs,ee,v,C,!0),Si=me&&f.paint.get(m?"text-halo-width":"icon-halo-width").constantOr(1)!==0;let gi;gi=me?le.iconsInText?Ju(je.kind,Qe,zt,tt,y,Ka,$s,nr,yn,fr):Ku(je.kind,Qe,zt,tt,y,Ka,$s,nr,m,yn,!0):Yu(je.kind,Qe,zt,tt,y,Ka,$s,nr,m,yn);const ss={program:Ln,buffers:pe,uniformValues:gi,atlasTexture:Di,atlasTextureIcon:wi,atlasInterpolation:Hn,atlasInterpolationIcon:zo,isSDF:me,hasHalo:Si};if(ht&&le.canOverlap){Mt=!0;const ir=pe.segments.get();for(const Ii of ir)$t.push({segments:new u.$([Ii]),sortKey:Ii.sortKey,state:ss,terrainData:dn})}else $t.push({segments:pe.segments,sortKey:0,state:ss,terrainData:dn})}Mt&&$t.sort((ne,ee)=>ne.sortKey-ee.sortKey);for(const ne of $t){const ee=ne.state;if(X.activeTexture.set(rt.TEXTURE0),ee.atlasTexture.bind(ee.atlasInterpolation,rt.CLAMP_TO_EDGE),ee.atlasTextureIcon&&(X.activeTexture.set(rt.TEXTURE1),ee.atlasTextureIcon&&ee.atlasTextureIcon.bind(ee.atlasInterpolationIcon,rt.CLAMP_TO_EDGE)),ee.isSDF){const le=ee.uniformValues;ee.hasHalo&&(le.u_is_halo=1,Gd(ee.buffers,ne.segments,f,y,ee.program,Ft,B,U,le,ne.terrainData)),le.u_is_halo=0}Gd(ee.buffers,ne.segments,f,y,ee.program,Ft,B,U,ee.uniformValues,ne.terrainData)}}function Gd(y,s,f,d,m,v,C,T,P,R){const B=d.context;m.draw(B,B.gl.TRIANGLES,v,C,T,ni.disabled,P,R,f.id,y.layoutVertexBuffer,y.indexBuffer,s,f.paint,d.transform.zoom,y.programConfigurations.get(f.id),y.dynamicLayoutVertexBuffer,y.opacityVertexBuffer)}function sh(y,s,f,d,m){if(!f||!d||!d.imageAtlas)return;const v=d.imageAtlas.patternPositions;let C=v[f.to.toString()],T=v[f.from.toString()];if(!C&&T&&(C=T),!T&&C&&(T=C),!C||!T){const P=m.getPaintProperty(s);C=v[P],T=v[P]}C&&T&&y.setConstantPatternPositions(C,T)}function jd(y,s,f,d,m,v,C){const T=y.context.gl,P="fill-pattern",R=f.paint.get(P),B=R&&R.constantOr(1),U=f.getCrossfadeParameters();let X,rt,it,ct,tt;C?(rt=B&&!f.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",X=T.LINES):(rt=B?"fillPattern":"fill",X=T.TRIANGLES);const wt=R.constantOr(null);for(const zt of d){const ht=s.getTile(zt);if(B&&!ht.patternsLoaded())continue;const Mt=ht.getBucket(f);if(!Mt)continue;const Ft=Mt.programConfigurations.get(f.id),Ut=y.useProgram(rt,Ft),$t=y.style.map.terrain&&y.style.map.terrain.getTerrainData(zt);B&&(y.context.activeTexture.set(T.TEXTURE0),ht.imageAtlasTexture.bind(T.LINEAR,T.CLAMP_TO_EDGE),Ft.updatePaintBuffers(U)),sh(Ft,P,wt,ht,f);const ne=$t?zt:null,ee=y.translatePosMatrix(ne?ne.posMatrix:zt.posMatrix,ht,f.paint.get("fill-translate"),f.paint.get("fill-translate-anchor"));if(C){ct=Mt.indexBuffer2,tt=Mt.segments2;const le=[T.drawingBufferWidth,T.drawingBufferHeight];it=rt==="fillOutlinePattern"&&B?Td(ee,y,U,ht,le):Hg(ee,le)}else ct=Mt.indexBuffer,tt=Mt.segments,it=B?qc(ee,y,U,ht):Cd(ee);Ut.draw(y.context,X,m,y.stencilModeForClipping(zt),v,ni.disabled,it,$t,f.id,Mt.layoutVertexBuffer,ct,tt,f.paint,y.transform.zoom,Ft)}}function ah(y,s,f,d,m,v,C){const T=y.context,P=T.gl,R="fill-extrusion-pattern",B=f.paint.get(R),U=B.constantOr(1),X=f.getCrossfadeParameters(),rt=f.paint.get("fill-extrusion-opacity"),it=B.constantOr(null);for(const ct of d){const tt=s.getTile(ct),wt=tt.getBucket(f);if(!wt)continue;const zt=y.style.map.terrain&&y.style.map.terrain.getTerrainData(ct),ht=wt.programConfigurations.get(f.id),Mt=y.useProgram(U?"fillExtrusionPattern":"fillExtrusion",ht);U&&(y.context.activeTexture.set(P.TEXTURE0),tt.imageAtlasTexture.bind(P.LINEAR,P.CLAMP_TO_EDGE),ht.updatePaintBuffers(X)),sh(ht,R,it,tt,f);const Ft=y.translatePosMatrix(ct.posMatrix,tt,f.paint.get("fill-extrusion-translate"),f.paint.get("fill-extrusion-translate-anchor")),Ut=f.paint.get("fill-extrusion-vertical-gradient"),$t=U?Wg(Ft,y,Ut,rt,ct,X,tt):Hu(Ft,y,Ut,rt);Mt.draw(T,T.gl.TRIANGLES,m,v,C,ni.backCCW,$t,zt,f.id,wt.layoutVertexBuffer,wt.indexBuffer,wt.segments,f.paint,y.transform.zoom,ht,y.style.map.terrain&&wt.centroidVertexBuffer)}}function lh(y,s,f,d,m,v,C){const T=y.context,P=T.gl,R=f.fbo;if(!R)return;const B=y.useProgram("hillshade"),U=y.style.map.terrain&&y.style.map.terrain.getTerrainData(s);T.activeTexture.set(P.TEXTURE0),P.bindTexture(P.TEXTURE_2D,R.colorAttachment.get()),B.draw(T,P.TRIANGLES,m,v,C,ni.disabled,((X,rt,it,ct)=>{const tt=it.paint.get("hillshade-shadow-color"),wt=it.paint.get("hillshade-highlight-color"),zt=it.paint.get("hillshade-accent-color");let ht=it.paint.get("hillshade-illumination-direction")*(Math.PI/180);it.paint.get("hillshade-illumination-anchor")==="viewport"&&(ht-=X.transform.angle);const Mt=!X.options.moving;return{u_matrix:ct?ct.posMatrix:X.transform.calculatePosMatrix(rt.tileID.toUnwrapped(),Mt),u_image:0,u_latrange:kd(0,rt.tileID),u_light:[it.paint.get("hillshade-exaggeration"),ht],u_shadow:tt,u_highlight:wt,u_accent:zt}})(y,f,d,U?s:null),U,d.id,y.rasterBoundsBuffer,y.quadTriangleIndexBuffer,y.rasterBoundsSegments)}function Bf(y,s,f,d,m,v){const C=y.context,T=C.gl,P=s.dem;if(P&&P.data){const R=P.dim,B=P.stride,U=P.getPixels();if(C.activeTexture.set(T.TEXTURE1),C.pixelStoreUnpackPremultiplyAlpha.set(!1),s.demTexture=s.demTexture||y.getTileTexture(B),s.demTexture){const rt=s.demTexture;rt.update(U,{premultiply:!1}),rt.bind(T.NEAREST,T.CLAMP_TO_EDGE)}else s.demTexture=new mt(C,U,T.RGBA,{premultiply:!1}),s.demTexture.bind(T.NEAREST,T.CLAMP_TO_EDGE);C.activeTexture.set(T.TEXTURE0);let X=s.fbo;if(!X){const rt=new mt(C,{width:R,height:R,data:null},T.RGBA);rt.bind(T.LINEAR,T.CLAMP_TO_EDGE),X=s.fbo=C.createFramebuffer(R,R,!0,!1),X.colorAttachment.set(rt.texture)}C.bindFramebuffer.set(X.framebuffer),C.viewport.set([0,0,R,R]),y.useProgram("hillshadePrepare").draw(C,T.TRIANGLES,d,m,v,ni.disabled,((rt,it)=>{const ct=it.stride,tt=u.F();return u.aN(tt,0,u.W,-u.W,0,0,1),u.H(tt,tt,[0,-u.W,0]),{u_matrix:tt,u_image:1,u_dimension:[ct,ct],u_zoom:rt.overscaledZ,u_unpack:it.getUnpackVector()}})(s.tileID,P),null,f.id,y.rasterBoundsBuffer,y.quadTriangleIndexBuffer,y.rasterBoundsSegments),s.needsHillshadePrepare=!1}}function qd(y,s,f,d,m,v){const C=d.paint.get("raster-fade-duration");if(!v&&C>0){const T=E.now(),P=(T-y.timeAdded)/C,R=s?(T-s.timeAdded)/C:-1,B=f.getSource(),U=m.coveringZoomLevel({tileSize:B.tileSize,roundZoom:B.roundZoom}),X=!s||Math.abs(s.tileID.overscaledZ-U)>Math.abs(y.tileID.overscaledZ-U),rt=X&&y.refreshedUponExpiration?1:u.ac(X?P:1-R,0,1);return y.refreshedUponExpiration&&P>=1&&(y.refreshedUponExpiration=!1),s?{opacity:1,mix:1-rt}:{opacity:rt,mix:0}}return{opacity:1,mix:0}}const Zd=new u.aO(1,0,0,1),uh=new u.aO(0,1,0,1),Vf=new u.aO(0,0,1,1),s_=new u.aO(1,0,1,1),Wd=new u.aO(0,1,1,1);function ki(y,s,f,d){oo(y,0,s+f/2,y.transform.width,f,d)}function Wa(y,s,f,d){oo(y,s-f/2,0,f,y.transform.height,d)}function oo(y,s,f,d,m,v){const C=y.context,T=C.gl;T.enable(T.SCISSOR_TEST),T.scissor(s*y.pixelRatio,f*y.pixelRatio,d*y.pixelRatio,m*y.pixelRatio),C.clear({color:v}),T.disable(T.SCISSOR_TEST)}function Uf(y,s,f){const d=y.context,m=d.gl,v=f.posMatrix,C=y.useProgram("debug"),T=Tn.disabled,P=ui.disabled,R=y.colorModeForRenderPass(),B="$debug",U=y.style.map.terrain&&y.style.map.terrain.getTerrainData(f);d.activeTexture.set(m.TEXTURE0);const X=s.getTileByID(f.key).latestRawTileData,rt=Math.floor((X&&X.byteLength||0)/1024),it=s.getTile(f).tileSize,ct=512/Math.min(it,512)*(f.overscaledZ/y.transform.zoom)*.5;let tt=f.canonical.toString();f.overscaledZ!==f.canonical.z&&(tt+=` => ${f.overscaledZ}`),function(wt,zt){wt.initDebugOverlayCanvas();const ht=wt.debugOverlayCanvas,Mt=wt.context.gl,Ft=wt.debugOverlayCanvas.getContext("2d");Ft.clearRect(0,0,ht.width,ht.height),Ft.shadowColor="white",Ft.shadowBlur=2,Ft.lineWidth=1.5,Ft.strokeStyle="white",Ft.textBaseline="top",Ft.font="bold 36px Open Sans, sans-serif",Ft.fillText(zt,5,5),Ft.strokeText(zt,5,5),wt.debugOverlayTexture.update(ht),wt.debugOverlayTexture.bind(Mt.LINEAR,Mt.CLAMP_TO_EDGE)}(y,`${tt} ${rt}kB`),C.draw(d,m.TRIANGLES,T,P,qi.alphaBlended,ni.disabled,Md(v,u.aO.transparent,ct),null,B,y.debugBuffer,y.quadTriangleIndexBuffer,y.debugSegments),C.draw(d,m.LINE_STRIP,T,P,R,ni.disabled,Md(v,u.aO.red),U,B,y.debugBuffer,y.tileBorderIndexBuffer,y.debugSegments)}function ch(y,s,f){const d=y.context,m=d.gl,v=y.colorModeForRenderPass(),C=new Tn(m.LEQUAL,Tn.ReadWrite,y.depthRangeFor3D),T=y.useProgram("terrain"),P=s.getTerrainMesh();d.bindFramebuffer.set(null),d.viewport.set([0,0,y.width,y.height]);for(const R of f){const B=y.renderToTexture.getTexture(R),U=s.getTerrainData(R.tileID);d.activeTexture.set(m.TEXTURE0),m.bindTexture(m.TEXTURE_2D,B.texture);const X={u_matrix:y.transform.calculatePosMatrix(R.tileID.toUnwrapped()),u_texture:0,u_ele_delta:s.getMeshFrameDelta(y.transform.zoom)};T.draw(d,m.TRIANGLES,C,ui.disabled,v,ni.backCCW,X,U,"terrain",P.vertexBuffer,P.indexBuffer,P.segments)}}class Hd{constructor(s,f){this.context=new o_(s),this.transform=f,this._tileTextures={},this.terrainFacilitator={dirty:!0,matrix:u.an(new Float64Array(16)),renderTime:0},this.setup(),this.numSublayers=Qi.maxUnderzooming+Qi.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new qa}resize(s,f,d){if(this.width=Math.floor(s*d),this.height=Math.floor(f*d),this.pixelRatio=d,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(const m of this.style._order)this.style._layers[m].resize()}setup(){const s=this.context,f=new u.aV;f.emplaceBack(0,0),f.emplaceBack(u.W,0),f.emplaceBack(0,u.W),f.emplaceBack(u.W,u.W),this.tileExtentBuffer=s.createVertexBuffer(f,Uc.members),this.tileExtentSegments=u.$.simpleSegment(0,0,4,2);const d=new u.aV;d.emplaceBack(0,0),d.emplaceBack(u.W,0),d.emplaceBack(0,u.W),d.emplaceBack(u.W,u.W),this.debugBuffer=s.createVertexBuffer(d,Uc.members),this.debugSegments=u.$.simpleSegment(0,0,4,5);const m=new u.Z;m.emplaceBack(0,0,0,0),m.emplaceBack(u.W,0,u.W,0),m.emplaceBack(0,u.W,0,u.W),m.emplaceBack(u.W,u.W,u.W,u.W),this.rasterBoundsBuffer=s.createVertexBuffer(m,gn.members),this.rasterBoundsSegments=u.$.simpleSegment(0,0,4,2);const v=new u.aV;v.emplaceBack(0,0),v.emplaceBack(1,0),v.emplaceBack(0,1),v.emplaceBack(1,1),this.viewportBuffer=s.createVertexBuffer(v,Uc.members),this.viewportSegments=u.$.simpleSegment(0,0,4,2);const C=new u.aW;C.emplaceBack(0),C.emplaceBack(1),C.emplaceBack(3),C.emplaceBack(2),C.emplaceBack(0),this.tileBorderIndexBuffer=s.createIndexBuffer(C);const T=new u.aX;T.emplaceBack(0,1,2),T.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=s.createIndexBuffer(T);const P=this.context.gl;this.stencilClearMode=new ui({func:P.ALWAYS,mask:0},0,255,P.ZERO,P.ZERO,P.ZERO)}clearStencil(){const s=this.context,f=s.gl;this.nextStencilID=1,this.currentStencilSource=void 0;const d=u.F();u.aN(d,0,this.width,this.height,0,0,1),u.J(d,d,[f.drawingBufferWidth,f.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(s,f.TRIANGLES,Tn.disabled,this.stencilClearMode,qi.disabled,ni.disabled,Zc(d),null,"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)}_renderTileClippingMasks(s,f){if(this.currentStencilSource===s.source||!s.isTileClipped()||!f||!f.length)return;this.currentStencilSource=s.source;const d=this.context,m=d.gl;this.nextStencilID+f.length>256&&this.clearStencil(),d.setColorMode(qi.disabled),d.setDepthMode(Tn.disabled);const v=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(const C of f){const T=this._tileClippingMaskIDs[C.key]=this.nextStencilID++,P=this.style.map.terrain&&this.style.map.terrain.getTerrainData(C);v.draw(d,m.TRIANGLES,Tn.disabled,new ui({func:m.ALWAYS,mask:0},T,255,m.KEEP,m.KEEP,m.REPLACE),qi.disabled,ni.disabled,Zc(C.posMatrix),P,"$clipping",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}stencilModeFor3D(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();const s=this.nextStencilID++,f=this.context.gl;return new ui({func:f.NOTEQUAL,mask:255},s,255,f.KEEP,f.KEEP,f.REPLACE)}stencilModeForClipping(s){const f=this.context.gl;return new ui({func:f.EQUAL,mask:255},this._tileClippingMaskIDs[s.key],0,f.KEEP,f.KEEP,f.REPLACE)}stencilConfigForOverlap(s){const f=this.context.gl,d=s.sort((C,T)=>T.overscaledZ-C.overscaledZ),m=d[d.length-1].overscaledZ,v=d[0].overscaledZ-m+1;if(v>1){this.currentStencilSource=void 0,this.nextStencilID+v>256&&this.clearStencil();const C={};for(let T=0;T=0;this.currentLayer--){const P=this.style._layers[d[this.currentLayer]],R=m[P.source],B=v[P.source];this._renderTileClippingMasks(P,B),this.renderLayer(this,R,P,B)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayertt.source&&!tt.isHidden(B)?[R.sourceCaches[tt.source]]:[]),rt=X.filter(tt=>tt.getSource().type==="vector"),it=X.filter(tt=>tt.getSource().type!=="vector"),ct=tt=>{(!U||U.getSource().maxzoomct(tt)),U||it.forEach(tt=>ct(tt)),U}(this.style,this.transform.zoom);P&&function(R,B,U){for(let X=0;X0),m&&(u.a_(f,d),this.terrainFacilitator.renderTime=Date.now(),this.terrainFacilitator.dirty=!1,function(v,C){const T=v.context,P=T.gl,R=qi.unblended,B=new Tn(P.LEQUAL,Tn.ReadWrite,[0,1]),U=C.getTerrainMesh(),X=C.sourceCache.getRenderableTiles(),rt=v.useProgram("terrainDepth");T.bindFramebuffer.set(C.getFramebuffer("depth").framebuffer),T.viewport.set([0,0,v.width/devicePixelRatio,v.height/devicePixelRatio]),T.clear({color:u.aO.transparent,depth:1});for(const it of X){const ct=C.getTerrainData(it.tileID),tt={u_matrix:v.transform.calculatePosMatrix(it.tileID.toUnwrapped()),u_ele_delta:C.getMeshFrameDelta(v.transform.zoom)};rt.draw(T,P.TRIANGLES,B,ui.disabled,R,ni.backCCW,tt,ct,"terrain",U.vertexBuffer,U.indexBuffer,U.segments)}T.bindFramebuffer.set(null),T.viewport.set([0,0,v.width,v.height])}(this,this.style.map.terrain),function(v,C){const T=v.context,P=T.gl,R=qi.unblended,B=new Tn(P.LEQUAL,Tn.ReadWrite,[0,1]),U=C.getTerrainMesh(),X=C.getCoordsTexture(),rt=C.sourceCache.getRenderableTiles(),it=v.useProgram("terrainCoords");T.bindFramebuffer.set(C.getFramebuffer("coords").framebuffer),T.viewport.set([0,0,v.width/devicePixelRatio,v.height/devicePixelRatio]),T.clear({color:u.aO.transparent,depth:1}),C.coordsIndex=[];for(const ct of rt){const tt=C.getTerrainData(ct.tileID);T.activeTexture.set(P.TEXTURE0),P.bindTexture(P.TEXTURE_2D,X.texture);const wt={u_matrix:v.transform.calculatePosMatrix(ct.tileID.toUnwrapped()),u_terrain_coords_id:(255-C.coordsIndex.length)/255,u_texture:0,u_ele_delta:C.getMeshFrameDelta(v.transform.zoom)};it.draw(T,P.TRIANGLES,B,ui.disabled,R,ni.backCCW,wt,tt,"terrain",U.vertexBuffer,U.indexBuffer,U.segments),C.coordsIndex.push(ct.tileID.key)}T.bindFramebuffer.set(null),T.viewport.set([0,0,v.width,v.height])}(this,this.style.map.terrain))}renderLayer(s,f,d,m){if(!d.isHidden(this.transform.zoom)&&(d.type==="background"||d.type==="custom"||(m||[]).length))switch(this.id=d.id,d.type){case"symbol":(function(v,C,T,P,R){if(v.renderPass!=="translucent")return;const B=ui.disabled,U=v.colorModeForRenderPass();(T._unevaluatedLayout.hasValue("text-variable-anchor")||T._unevaluatedLayout.hasValue("text-variable-anchor-offset"))&&function(X,rt,it,ct,tt,wt,zt){const ht=rt.transform,Mt=tt==="map",Ft=wt==="map";for(const Ut of X){const $t=ct.getTile(Ut),ne=$t.getBucket(it);if(!ne||!ne.text||!ne.text.segments.get().length)continue;const ee=u.ag(ne.textSizeData,ht.zoom),le=rn($t,1,rt.transform.zoom),pe=sn(Ut.posMatrix,Ft,Mt,rt.transform,le),cn=it.layout.get("icon-text-fit")!=="none"&&ne.hasIconData();if(ee){const me=Math.pow(2,ht.zoom-$t.tileID.overscaledZ);ih(ne,Mt,Ft,zt,ht,pe,Ut.posMatrix,me,ee,cn,rt.style.map.terrain?(je,hn)=>rt.style.map.terrain.getElevation(Ut,je,hn):null)}}}(P,v,T,C,T.layout.get("text-rotation-alignment"),T.layout.get("text-pitch-alignment"),R),T.paint.get("icon-opacity").constantOr(1)!==0&&oh(v,C,T,P,!1,T.paint.get("icon-translate"),T.paint.get("icon-translate-anchor"),T.layout.get("icon-rotation-alignment"),T.layout.get("icon-pitch-alignment"),T.layout.get("icon-keep-upright"),B,U),T.paint.get("text-opacity").constantOr(1)!==0&&oh(v,C,T,P,!0,T.paint.get("text-translate"),T.paint.get("text-translate-anchor"),T.layout.get("text-rotation-alignment"),T.layout.get("text-pitch-alignment"),T.layout.get("text-keep-upright"),B,U),C.map.showCollisionBoxes&&(nh(v,C,T,P,T.paint.get("text-translate"),T.paint.get("text-translate-anchor"),!0),nh(v,C,T,P,T.paint.get("icon-translate"),T.paint.get("icon-translate-anchor"),!1))})(s,f,d,m,this.style.placement.variableOffsets);break;case"circle":(function(v,C,T,P){if(v.renderPass!=="translucent")return;const R=T.paint.get("circle-opacity"),B=T.paint.get("circle-stroke-width"),U=T.paint.get("circle-stroke-opacity"),X=!T.layout.get("circle-sort-key").isConstant();if(R.constantOr(1)===0&&(B.constantOr(1)===0||U.constantOr(1)===0))return;const rt=v.context,it=rt.gl,ct=v.depthModeForSublayer(0,Tn.ReadOnly),tt=ui.disabled,wt=v.colorModeForRenderPass(),zt=[];for(let ht=0;htht.sortKey-Mt.sortKey);for(const ht of zt){const{programConfiguration:Mt,program:Ft,layoutVertexBuffer:Ut,indexBuffer:$t,uniformValues:ne,terrainData:ee}=ht.state;Ft.draw(rt,it.TRIANGLES,ct,tt,wt,ni.disabled,ne,ee,T.id,Ut,$t,ht.segments,T.paint,v.transform.zoom,Mt)}})(s,f,d,m);break;case"heatmap":(function(v,C,T,P){if(T.paint.get("heatmap-opacity")!==0)if(v.renderPass==="offscreen"){const R=v.context,B=R.gl,U=ui.disabled,X=new qi([B.ONE,B.ONE],u.aO.transparent,[!0,!0,!0,!0]);(function(rt,it,ct){const tt=rt.gl;rt.activeTexture.set(tt.TEXTURE1),rt.viewport.set([0,0,it.width/4,it.height/4]);let wt=ct.heatmapFbo;if(wt)tt.bindTexture(tt.TEXTURE_2D,wt.colorAttachment.get()),rt.bindFramebuffer.set(wt.framebuffer);else{const zt=tt.createTexture();tt.bindTexture(tt.TEXTURE_2D,zt),tt.texParameteri(tt.TEXTURE_2D,tt.TEXTURE_WRAP_S,tt.CLAMP_TO_EDGE),tt.texParameteri(tt.TEXTURE_2D,tt.TEXTURE_WRAP_T,tt.CLAMP_TO_EDGE),tt.texParameteri(tt.TEXTURE_2D,tt.TEXTURE_MIN_FILTER,tt.LINEAR),tt.texParameteri(tt.TEXTURE_2D,tt.TEXTURE_MAG_FILTER,tt.LINEAR),wt=ct.heatmapFbo=rt.createFramebuffer(it.width/4,it.height/4,!1,!1),function(ht,Mt,Ft,Ut){var $t,ne;const ee=ht.gl,le=($t=ht.HALF_FLOAT)!==null&&$t!==void 0?$t:ee.UNSIGNED_BYTE,pe=(ne=ht.RGBA16F)!==null&&ne!==void 0?ne:ee.RGBA;ee.texImage2D(ee.TEXTURE_2D,0,pe,Mt.width/4,Mt.height/4,0,ee.RGBA,le,null),Ut.colorAttachment.set(Ft)}(rt,it,zt,wt)}})(R,v,T),R.clear({color:u.aO.transparent});for(let rt=0;rt{const ht=u.F();u.aN(ht,0,ct.width,ct.height,0,0,1);const Mt=ct.context.gl;return{u_matrix:ht,u_world:[Mt.drawingBufferWidth,Mt.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:tt.paint.get("heatmap-opacity")}})(R,B),null,B.id,R.viewportBuffer,R.quadTriangleIndexBuffer,R.viewportSegments,B.paint,R.transform.zoom)}(v,T))})(s,f,d,m);break;case"line":(function(v,C,T,P){if(v.renderPass!=="translucent")return;const R=T.paint.get("line-opacity"),B=T.paint.get("line-width");if(R.constantOr(1)===0||B.constantOr(1)===0)return;const U=v.depthModeForSublayer(0,Tn.ReadOnly),X=v.colorModeForRenderPass(),rt=T.paint.get("line-dasharray"),it=T.paint.get("line-pattern"),ct=it.constantOr(1),tt=T.paint.get("line-gradient"),wt=T.getCrossfadeParameters(),zt=ct?"linePattern":rt?"lineSDF":tt?"lineGradient":"line",ht=v.context,Mt=ht.gl;let Ft=!0;for(const Ut of P){const $t=C.getTile(Ut);if(ct&&!$t.patternsLoaded())continue;const ne=$t.getBucket(T);if(!ne)continue;const ee=ne.programConfigurations.get(T.id),le=v.context.program.get(),pe=v.useProgram(zt,ee),cn=Ft||pe.program!==le,me=v.style.map.terrain&&v.style.map.terrain.getTerrainData(Ut),je=it.constantOr(null);if(je&&$t.imageAtlas){const Qe=$t.imageAtlas,dn=Qe.patternPositions[je.to.toString()],yn=Qe.patternPositions[je.from.toString()];dn&&yn&&ee.setConstantPatternPositions(dn,yn)}const hn=me?Ut:null,Ln=ct?bl(v,$t,T,wt,hn):rt?Hc(v,$t,T,rt,wt,hn):tt?Ad(v,$t,T,ne.lineClipsArray.length,hn):Wc(v,$t,T,hn);if(ct)ht.activeTexture.set(Mt.TEXTURE0),$t.imageAtlasTexture.bind(Mt.LINEAR,Mt.CLAMP_TO_EDGE),ee.updatePaintBuffers(wt);else if(rt&&(cn||v.lineAtlas.dirty))ht.activeTexture.set(Mt.TEXTURE0),v.lineAtlas.bind(ht);else if(tt){const Qe=ne.gradients[T.id];let dn=Qe.texture;if(T.gradientVersion!==Qe.version){let yn=256;if(T.stepInterpolant){const Di=C.getSource().maxzoom,Hn=Ut.canonical.z===Di?Math.ceil(1<0?f.pop():null}isPatternMissing(s){if(!s)return!1;if(!s.from||!s.to)return!0;const f=this.imageManager.getPattern(s.from.toString()),d=this.imageManager.getPattern(s.to.toString());return!f||!d}useProgram(s,f){this.cache=this.cache||{};const d=s+(f?f.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"")+(this.style.map.terrain?"/terrain":"");return this.cache[d]||(this.cache[d]=new Za(this.context,Wu[s],f,Dd[s],this._showOverdrawInspector,this.style.map.terrain)),this.cache[d]}setCustomLayerDefaults(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()}setBaseState(){const s=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(s.FUNC_ADD)}initDebugOverlayCanvas(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new mt(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))}destroy(){this.debugOverlayTexture&&this.debugOverlayTexture.destroy()}overLimit(){const{drawingBufferWidth:s,drawingBufferHeight:f}=this.context.gl;return this.width!==s||this.height!==f}}class Ha{constructor(s,f){this.points=s,this.planes=f}static fromInvProjectionMatrix(s,f,d){const m=Math.pow(2,d),v=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map(T=>{const P=1/(T=u.af([],T,s))[3]/f*m;return u.a$(T,T,[P,P,1/T[3],P])}),C=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map(T=>{const P=function(X,rt){var it=rt[0],ct=rt[1],tt=rt[2],wt=it*it+ct*ct+tt*tt;return wt>0&&(wt=1/Math.sqrt(wt)),X[0]=rt[0]*wt,X[1]=rt[1]*wt,X[2]=rt[2]*wt,X}([],function(X,rt,it){var ct=rt[0],tt=rt[1],wt=rt[2],zt=it[0],ht=it[1],Mt=it[2];return X[0]=tt*Mt-wt*ht,X[1]=wt*zt-ct*Mt,X[2]=ct*ht-tt*zt,X}([],St([],v[T[0]],v[T[1]]),St([],v[T[2]],v[T[1]]))),R=-((B=P)[0]*(U=v[T[1]])[0]+B[1]*U[1]+B[2]*U[2]);var B,U;return P.concat(R)});return new Ha(v,C)}}class Xa{constructor(s,f){this.min=s,this.max=f,this.center=function(d,m,v){return d[0]=.5*m[0],d[1]=.5*m[1],d[2]=.5*m[2],d}([],function(d,m,v){return d[0]=m[0]+v[0],d[1]=m[1]+v[1],d[2]=m[2]+v[2],d}([],this.min,this.max))}quadrant(s){const f=[s%2==0,s<2],d=pt(this.min),m=pt(this.max);for(let v=0;v=0&&C++;if(C===0)return 0;C!==f.length&&(d=!1)}if(d)return 2;for(let m=0;m<3;m++){let v=Number.MAX_VALUE,C=-Number.MAX_VALUE;for(let T=0;Tthis.max[m]-this.min[m])return 0}return 1}}class ru{constructor(s=0,f=0,d=0,m=0){if(isNaN(s)||s<0||isNaN(f)||f<0||isNaN(d)||d<0||isNaN(m)||m<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=s,this.bottom=f,this.left=d,this.right=m}interpolate(s,f,d){return f.top!=null&&s.top!=null&&(this.top=u.z.number(s.top,f.top,d)),f.bottom!=null&&s.bottom!=null&&(this.bottom=u.z.number(s.bottom,f.bottom,d)),f.left!=null&&s.left!=null&&(this.left=u.z.number(s.left,f.left,d)),f.right!=null&&s.right!=null&&(this.right=u.z.number(s.right,f.right,d)),this}getCenter(s,f){const d=u.ac((this.left+s-this.right)/2,0,s),m=u.ac((this.top+f-this.bottom)/2,0,f);return new u.P(d,m)}equals(s){return this.top===s.top&&this.bottom===s.bottom&&this.left===s.left&&this.right===s.right}clone(){return new ru(this.top,this.bottom,this.left,this.right)}toJSON(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}}}const Gf=85.051129;class hh{constructor(s,f,d,m,v){this.tileSize=512,this._renderWorldCopies=v===void 0||!!v,this._minZoom=s||0,this._maxZoom=f||22,this._minPitch=d??0,this._maxPitch=m??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new u.M(0,0),this._elevation=0,this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new ru,this._posMatrixCache={},this._alignedPosMatrixCache={},this.minElevationForCurrentTile=0}clone(){const s=new hh(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return s.apply(this),s}apply(s){this.tileSize=s.tileSize,this.latRange=s.latRange,this.width=s.width,this.height=s.height,this._center=s._center,this._elevation=s._elevation,this.minElevationForCurrentTile=s.minElevationForCurrentTile,this.zoom=s.zoom,this.angle=s.angle,this._fov=s._fov,this._pitch=s._pitch,this._unmodified=s._unmodified,this._edgeInsets=s._edgeInsets.clone(),this._calcMatrices()}get minZoom(){return this._minZoom}set minZoom(s){this._minZoom!==s&&(this._minZoom=s,this.zoom=Math.max(this.zoom,s))}get maxZoom(){return this._maxZoom}set maxZoom(s){this._maxZoom!==s&&(this._maxZoom=s,this.zoom=Math.min(this.zoom,s))}get minPitch(){return this._minPitch}set minPitch(s){this._minPitch!==s&&(this._minPitch=s,this.pitch=Math.max(this.pitch,s))}get maxPitch(){return this._maxPitch}set maxPitch(s){this._maxPitch!==s&&(this._maxPitch=s,this.pitch=Math.min(this.pitch,s))}get renderWorldCopies(){return this._renderWorldCopies}set renderWorldCopies(s){s===void 0?s=!0:s===null&&(s=!1),this._renderWorldCopies=s}get worldSize(){return this.tileSize*this.scale}get centerOffset(){return this.centerPoint._sub(this.size._div(2))}get size(){return new u.P(this.width,this.height)}get bearing(){return-this.angle/Math.PI*180}set bearing(s){const f=-u.b1(s,-180,180)*Math.PI/180;this.angle!==f&&(this._unmodified=!1,this.angle=f,this._calcMatrices(),this.rotationMatrix=function(){var d=new u.A(4);return u.A!=Float32Array&&(d[1]=0,d[2]=0),d[0]=1,d[3]=1,d}(),function(d,m,v){var C=m[0],T=m[1],P=m[2],R=m[3],B=Math.sin(v),U=Math.cos(v);d[0]=C*U+P*B,d[1]=T*U+R*B,d[2]=C*-B+P*U,d[3]=T*-B+R*U}(this.rotationMatrix,this.rotationMatrix,this.angle))}get pitch(){return this._pitch/Math.PI*180}set pitch(s){const f=u.ac(s,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==f&&(this._unmodified=!1,this._pitch=f,this._calcMatrices())}get fov(){return this._fov/Math.PI*180}set fov(s){s=Math.max(.01,Math.min(60,s)),this._fov!==s&&(this._unmodified=!1,this._fov=s/180*Math.PI,this._calcMatrices())}get zoom(){return this._zoom}set zoom(s){const f=Math.min(Math.max(s,this.minZoom),this.maxZoom);this._zoom!==f&&(this._unmodified=!1,this._zoom=f,this.tileZoom=Math.max(0,Math.floor(f)),this.scale=this.zoomScale(f),this._constrain(),this._calcMatrices())}get center(){return this._center}set center(s){s.lat===this._center.lat&&s.lng===this._center.lng||(this._unmodified=!1,this._center=s,this._constrain(),this._calcMatrices())}get elevation(){return this._elevation}set elevation(s){s!==this._elevation&&(this._elevation=s,this._constrain(),this._calcMatrices())}get padding(){return this._edgeInsets.toJSON()}set padding(s){this._edgeInsets.equals(s)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,s,1),this._calcMatrices())}get centerPoint(){return this._edgeInsets.getCenter(this.width,this.height)}isPaddingEqual(s){return this._edgeInsets.equals(s)}interpolatePadding(s,f,d){this._unmodified=!1,this._edgeInsets.interpolate(s,f,d),this._constrain(),this._calcMatrices()}coveringZoomLevel(s){const f=(s.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/s.tileSize));return Math.max(0,f)}getVisibleUnwrappedCoordinates(s){const f=[new u.b2(0,s)];if(this._renderWorldCopies){const d=this.pointCoordinate(new u.P(0,0)),m=this.pointCoordinate(new u.P(this.width,0)),v=this.pointCoordinate(new u.P(this.width,this.height)),C=this.pointCoordinate(new u.P(0,this.height)),T=Math.floor(Math.min(d.x,m.x,v.x,C.x)),P=Math.floor(Math.max(d.x,m.x,v.x,C.x)),R=1;for(let B=T-R;B<=P+R;B++)B!==0&&f.push(new u.b2(B,s))}return f}coveringTiles(s){var f,d;let m=this.coveringZoomLevel(s);const v=m;if(s.minzoom!==void 0&&ms.maxzoom&&(m=s.maxzoom);const C=this.pointCoordinate(this.getCameraPoint()),T=u.Y.fromLngLat(this.center),P=Math.pow(2,m),R=[P*C.x,P*C.y,0],B=[P*T.x,P*T.y,0],U=Ha.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,m);let X=s.minzoom||0;!s.terrain&&this.pitch<=60&&this._edgeInsets.top<.1&&(X=m);const rt=s.terrain?2/Math.min(this.tileSize,s.tileSize)*this.tileSize:3,it=ht=>({aabb:new Xa([ht*P,0,0],[(ht+1)*P,P,0]),zoom:0,x:0,y:0,wrap:ht,fullyVisible:!1}),ct=[],tt=[],wt=m,zt=s.reparseOverscaled?v:m;if(this._renderWorldCopies)for(let ht=1;ht<=3;ht++)ct.push(it(-ht)),ct.push(it(ht));for(ct.push(it(0));ct.length>0;){const ht=ct.pop(),Mt=ht.x,Ft=ht.y;let Ut=ht.fullyVisible;if(!Ut){const pe=ht.aabb.intersects(U);if(pe===0)continue;Ut=pe===2}const $t=s.terrain?R:B,ne=ht.aabb.distanceX($t),ee=ht.aabb.distanceY($t),le=Math.max(Math.abs(ne),Math.abs(ee));if(ht.zoom===wt||le>rt+(1<=X){const pe=wt-ht.zoom,cn=R[0]-.5-(Mt<>1),je=ht.zoom+1;let hn=ht.aabb.quadrant(pe);if(s.terrain){const Ln=new u.Q(je,ht.wrap,je,cn,me),Qe=s.terrain.getMinMaxElevation(Ln),dn=(f=Qe.minElevation)!==null&&f!==void 0?f:this.elevation,yn=(d=Qe.maxElevation)!==null&&d!==void 0?d:this.elevation;hn=new Xa([hn.min[0],hn.min[1],dn],[hn.max[0],hn.max[1],yn])}ct.push({aabb:hn,zoom:je,x:cn,y:me,wrap:ht.wrap,fullyVisible:Ut})}}return tt.sort((ht,Mt)=>ht.distanceSq-Mt.distanceSq).map(ht=>ht.tileID)}resize(s,f){this.width=s,this.height=f,this.pixelsToGLUnits=[2/s,-2/f],this._constrain(),this._calcMatrices()}get unmodified(){return this._unmodified}zoomScale(s){return Math.pow(2,s)}scaleZoom(s){return Math.log(s)/Math.LN2}project(s){const f=u.ac(s.lat,-85.051129,Gf);return new u.P(u.N(s.lng)*this.worldSize,u.O(f)*this.worldSize)}unproject(s){return new u.Y(s.x/this.worldSize,s.y/this.worldSize).toLngLat()}get point(){return this.project(this.center)}getCameraPosition(){return{lngLat:this.pointLocation(this.getCameraPoint()),altitude:Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter+this.elevation}}recalculateZoom(s){const f=this.elevation,d=Math.cos(this._pitch)*this.cameraToCenterDistance/this._pixelPerMeter,m=this.pointLocation(this.centerPoint,s),v=s.getElevationForLngLatZoom(m,this.tileZoom);if(!(this.elevation-v))return;const C=d+f-v,T=Math.cos(this._pitch)*this.cameraToCenterDistance/C/u.b3(1,m.lat),P=this.scaleZoom(T/this.tileSize);this._elevation=v,this._center=m,this.zoom=P}setLocationAtPoint(s,f){const d=this.pointCoordinate(f),m=this.pointCoordinate(this.centerPoint),v=this.locationCoordinate(s),C=new u.Y(v.x-(d.x-m.x),v.y-(d.y-m.y));this.center=this.coordinateLocation(C),this._renderWorldCopies&&(this.center=this.center.wrap())}locationPoint(s,f){return f?this.coordinatePoint(this.locationCoordinate(s),f.getElevationForLngLatZoom(s,this.tileZoom),this.pixelMatrix3D):this.coordinatePoint(this.locationCoordinate(s))}pointLocation(s,f){return this.coordinateLocation(this.pointCoordinate(s,f))}locationCoordinate(s){return u.Y.fromLngLat(s)}coordinateLocation(s){return s&&s.toLngLat()}pointCoordinate(s,f){if(f){const X=f.pointCoordinate(s);if(X!=null)return X}const d=[s.x,s.y,0,1],m=[s.x,s.y,1,1];u.af(d,d,this.pixelMatrixInverse),u.af(m,m,this.pixelMatrixInverse);const v=d[3],C=m[3],T=d[1]/v,P=m[1]/C,R=d[2]/v,B=m[2]/C,U=R===B?0:(0-R)/(B-R);return new u.Y(u.z.number(d[0]/v,m[0]/C,U)/this.worldSize,u.z.number(T,P,U)/this.worldSize)}coordinatePoint(s,f=0,d=this.pixelMatrix){const m=[s.x*this.worldSize,s.y*this.worldSize,f,1];return u.af(m,m,d),new u.P(m[0]/m[3],m[1]/m[3])}getBounds(){const s=Math.max(0,this.height/2-this.getHorizon());return new Nt().extend(this.pointLocation(new u.P(0,s))).extend(this.pointLocation(new u.P(this.width,s))).extend(this.pointLocation(new u.P(this.width,this.height))).extend(this.pointLocation(new u.P(0,this.height)))}getMaxBounds(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new Nt([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null}getHorizon(){return Math.tan(Math.PI/2-this._pitch)*this.cameraToCenterDistance*.85}setMaxBounds(s){s?(this.lngRange=[s.getWest(),s.getEast()],this.latRange=[s.getSouth(),s.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-85.051129,Gf])}calculatePosMatrix(s,f=!1){const d=s.key,m=f?this._alignedPosMatrixCache:this._posMatrixCache;if(m[d])return m[d];const v=s.canonical,C=this.worldSize/this.zoomScale(v.z),T=v.x+Math.pow(2,v.z)*s.wrap,P=u.an(new Float64Array(16));return u.H(P,P,[T*C,v.y*C,0]),u.J(P,P,[C/u.W,C/u.W,1]),u.K(P,f?this.alignedProjMatrix:this.projMatrix,P),m[d]=new Float32Array(P),m[d]}customLayerMatrix(){return this.mercatorMatrix.slice()}getConstrained(s,f){f=u.ac(+f,this.minZoom,this.maxZoom);const d={center:new u.M(s.lng,s.lat),zoom:f};let m=this.lngRange;if(!this._renderWorldCopies&&m===null){const ht=179.9999999999;m=[-ht,ht]}const v=this.tileSize*this.zoomScale(d.zoom);let C=0,T=v,P=0,R=v,B=0,U=0;const{x:X,y:rt}=this.size;if(this.latRange){const ht=this.latRange;C=u.O(ht[1])*v,T=u.O(ht[0])*v,T-CT&&(wt=T-ht)}if(m){const ht=(P+R)/2;let Mt=it;this._renderWorldCopies&&(Mt=u.b1(it,ht-v/2,ht+v/2));const Ft=X/2;Mt-FtR&&(tt=R-Ft)}if(tt!==void 0||wt!==void 0){const ht=new u.P(tt??it,wt??ct);d.center=this.unproject.call({worldSize:v},ht).wrap()}return d}_constrain(){if(!this.center||!this.width||!this.height||this._constraining)return;this._constraining=!0;const s=this._unmodified,{center:f,zoom:d}=this.getConstrained(this.center,this.zoom);this.center=f,this.zoom=d,this._unmodified=s,this._constraining=!1}_calcMatrices(){if(!this.height)return;const s=this.centerOffset,f=this.point.x,d=this.point.y;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height,this._pixelPerMeter=u.b3(1,this.center.lat)*this.worldSize;let m=u.an(new Float64Array(16));u.J(m,m,[this.width/2,-this.height/2,1]),u.H(m,m,[1,-1,0]),this.labelPlaneMatrix=m,m=u.an(new Float64Array(16)),u.J(m,m,[1,-1,1]),u.H(m,m,[-1,-1,0]),u.J(m,m,[2/this.width,2/this.height,1]),this.glCoordMatrix=m;const v=this.cameraToCenterDistance+this._elevation*this._pixelPerMeter/Math.cos(this._pitch),C=Math.min(this.elevation,this.minElevationForCurrentTile),T=v-C*this._pixelPerMeter/Math.cos(this._pitch),P=C<0?T:v,R=Math.PI/2+this._pitch,B=this._fov*(.5+s.y/this.height),U=Math.sin(B)*P/Math.sin(u.ac(Math.PI-R-B,.01,Math.PI-.01)),X=this.getHorizon(),rt=2*Math.atan(X/this.cameraToCenterDistance)*(.5+s.y/(2*X)),it=Math.sin(rt)*P/Math.sin(u.ac(Math.PI-R-rt,.01,Math.PI-.01)),ct=Math.min(U,it),tt=1.01*(Math.cos(Math.PI/2-this._pitch)*ct+P),wt=this.height/50;m=new Float64Array(16),u.b4(m,this._fov,this.width/this.height,wt,tt),m[8]=2*-s.x/this.width,m[9]=2*s.y/this.height,u.J(m,m,[1,-1,1]),u.H(m,m,[0,0,-this.cameraToCenterDistance]),u.b5(m,m,this._pitch),u.ad(m,m,this.angle),u.H(m,m,[-f,-d,0]),this.mercatorMatrix=u.J([],m,[this.worldSize,this.worldSize,this.worldSize]),u.J(m,m,[1,1,this._pixelPerMeter]),this.pixelMatrix=u.K(new Float64Array(16),this.labelPlaneMatrix,m),u.H(m,m,[0,0,-this.elevation]),this.projMatrix=m,this.invProjMatrix=u.ar([],m),this.pixelMatrix3D=u.K(new Float64Array(16),this.labelPlaneMatrix,m);const zt=this.width%2/2,ht=this.height%2/2,Mt=Math.cos(this.angle),Ft=Math.sin(this.angle),Ut=f-Math.round(f)+Mt*zt+Ft*ht,$t=d-Math.round(d)+Mt*ht+Ft*zt,ne=new Float64Array(m);if(u.H(ne,ne,[Ut>.5?Ut-1:Ut,$t>.5?$t-1:$t,0]),this.alignedProjMatrix=ne,m=u.ar(new Float64Array(16),this.pixelMatrix),!m)throw new Error("failed to invert matrix");this.pixelMatrixInverse=m,this._posMatrixCache={},this._alignedPosMatrixCache={}}maxPitchScaleFactor(){if(!this.pixelMatrixInverse)return 1;const s=this.pointCoordinate(new u.P(0,0)),f=[s.x*this.worldSize,s.y*this.worldSize,0,1];return u.af(f,f,this.pixelMatrix)[3]/this.cameraToCenterDistance}getCameraPoint(){const s=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new u.P(0,s))}getCameraQueryGeometry(s){const f=this.getCameraPoint();if(s.length===1)return[s[0],f];{let d=f.x,m=f.y,v=f.x,C=f.y;for(const T of s)d=Math.min(d,T.x),m=Math.min(m,T.y),v=Math.max(v,T.x),C=Math.max(C,T.y);return[new u.P(d,m),new u.P(v,m),new u.P(v,C),new u.P(d,C),new u.P(d,m)]}}lngLatToCameraDepth(s,f){const d=this.locationCoordinate(s),m=[d.x*this.worldSize,d.y*this.worldSize,f,1];return u.af(m,m,this.projMatrix),m[2]/m[3]}}function jf(y,s){let f,d=!1,m=null,v=null;const C=()=>{m=null,d&&(y.apply(v,f),m=setTimeout(C,s),d=!1)};return(...T)=>(d=!0,v=this,f=T,m||C(),m)}class qf{constructor(s){this._getCurrentHash=()=>{const f=window.location.hash.replace("#","");if(this._hashName){let d;return f.split("&").map(m=>m.split("=")).forEach(m=>{m[0]===this._hashName&&(d=m)}),(d&&d[1]||"").split("/")}return f.split("/")},this._onHashChange=()=>{const f=this._getCurrentHash();if(f.length>=3&&!f.some(d=>isNaN(d))){const d=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(f[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+f[2],+f[1]],zoom:+f[0],bearing:d,pitch:+(f[4]||0)}),!0}return!1},this._updateHashUnthrottled=()=>{const f=window.location.href.replace(/(#.+)?$/,this.getHashString());try{window.history.replaceState(window.history.state,null,f)}catch{}},this._updateHash=jf(this._updateHashUnthrottled,300),this._hashName=s&&encodeURIComponent(s)}addTo(s){return this._map=s,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()),delete this._map,this}getHashString(s){const f=this._map.getCenter(),d=Math.round(100*this._map.getZoom())/100,m=Math.ceil((d*Math.LN2+Math.log(512/360/.5))/Math.LN10),v=Math.pow(10,m),C=Math.round(f.lng*v)/v,T=Math.round(f.lat*v)/v,P=this._map.getBearing(),R=this._map.getPitch();let B="";if(B+=s?`/${C}/${T}/${d}`:`${d}/${T}/${C}`,(P||R)&&(B+="/"+Math.round(10*P)/10),R&&(B+=`/${Math.round(R)}`),this._hashName){const U=this._hashName;let X=!1;const rt=window.location.hash.slice(1).split("&").map(it=>{const ct=it.split("=")[0];return ct===U?(X=!0,`${ct}=${B}`):it}).filter(it=>it);return X||rt.push(`${U}=${B}`),`#${rt.join("&")}`}return`#${B}`}}const tc={linearity:.3,easing:u.b6(0,0,.3,1)},Il=u.e({deceleration:2500,maxSpeed:1400},tc),Xd=u.e({deceleration:20,maxSpeed:1400},tc),$d=u.e({deceleration:1e3,maxSpeed:360},tc),Yd=u.e({deceleration:1e3,maxSpeed:90},tc);class Kd{constructor(s){this._map=s,this.clear()}clear(){this._inertiaBuffer=[]}record(s){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:E.now(),settings:s})}_drainInertiaBuffer(){const s=this._inertiaBuffer,f=E.now();for(;s.length>0&&f-s[0].time>160;)s.shift()}_onMoveEnd(s){if(this._drainInertiaBuffer(),this._inertiaBuffer.length<2)return;const f={zoom:0,bearing:0,pitch:0,pan:new u.P(0,0),pinchAround:void 0,around:void 0};for(const{settings:v}of this._inertiaBuffer)f.zoom+=v.zoomDelta||0,f.bearing+=v.bearingDelta||0,f.pitch+=v.pitchDelta||0,v.panDelta&&f.pan._add(v.panDelta),v.around&&(f.around=v.around),v.pinchAround&&(f.pinchAround=v.pinchAround);const d=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,m={};if(f.pan.mag()){const v=nc(f.pan.mag(),d,u.e({},Il,s||{}));m.offset=f.pan.mult(v.amount/f.pan.mag()),m.center=this._map.transform.center,ec(m,v)}if(f.zoom){const v=nc(f.zoom,d,Xd);m.zoom=this._map.transform.zoom+v.amount,ec(m,v)}if(f.bearing){const v=nc(f.bearing,d,$d);m.bearing=this._map.transform.bearing+u.ac(v.amount,-179,179),ec(m,v)}if(f.pitch){const v=nc(f.pitch,d,Yd);m.pitch=this._map.transform.pitch+v.amount,ec(m,v)}if(m.zoom||m.bearing){const v=f.pinchAround===void 0?f.around:f.pinchAround;m.around=v?this._map.unproject(v):this._map.getCenter()}return this.clear(),u.e(m,{noMoveStart:!0})}}function ec(y,s){(!y.duration||y.durationf.unproject(P)),T=v.reduce((P,R,B,U)=>P.add(R.div(U.length)),new u.P(0,0));super(s,{points:v,point:T,lngLats:C,lngLat:f.unproject(T),originalEvent:d}),this._defaultPrevented=!1}}class Zf extends u.k{preventDefault(){this._defaultPrevented=!0}get defaultPrevented(){return this._defaultPrevented}constructor(s,f,d){super(s,{originalEvent:d}),this._defaultPrevented=!1}}class xs{constructor(s,f){this._map=s,this._clickTolerance=f.clickTolerance}reset(){delete this._mousedownPos}wheel(s){return this._firePreventable(new Zf(s.type,this._map,s))}mousedown(s,f){return this._mousedownPos=f,this._firePreventable(new yo(s.type,this._map,s))}mouseup(s){this._map.fire(new yo(s.type,this._map,s))}click(s,f){this._mousedownPos&&this._mousedownPos.dist(f)>=this._clickTolerance||this._map.fire(new yo(s.type,this._map,s))}dblclick(s){return this._firePreventable(new yo(s.type,this._map,s))}mouseover(s){this._map.fire(new yo(s.type,this._map,s))}mouseout(s){this._map.fire(new yo(s.type,this._map,s))}touchstart(s){return this._firePreventable(new Zs(s.type,this._map,s))}touchmove(s){this._map.fire(new Zs(s.type,this._map,s))}touchend(s){this._map.fire(new Zs(s.type,this._map,s))}touchcancel(s){this._map.fire(new Zs(s.type,this._map,s))}_firePreventable(s){if(this._map.fire(s),s.defaultPrevented)return{}}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class Ws{constructor(s){this._map=s}reset(){this._delayContextMenu=!1,this._ignoreContextMenu=!0,delete this._contextMenuEvent}mousemove(s){this._map.fire(new yo(s.type,this._map,s))}mousedown(){this._delayContextMenu=!0,this._ignoreContextMenu=!1}mouseup(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new yo("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)}contextmenu(s){this._delayContextMenu?this._contextMenuEvent=s:this._ignoreContextMenu||this._map.fire(new yo(s.type,this._map,s)),this._map.listens("contextmenu")&&s.preventDefault()}isEnabled(){return!0}isActive(){return!1}enable(){}disable(){}}class ou{constructor(s){this._map=s}get transform(){return this._map._requestedCameraState||this._map.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(s){return this.transform.pointLocation(u.P.convert(s),this._map.terrain)}}class ws{constructor(s,f){this._map=s,this._tr=new ou(s),this._el=s.getCanvasContainer(),this._container=s.getContainer(),this._clickTolerance=f.clickTolerance||1}isEnabled(){return!!this._enabled}isActive(){return!!this._active}enable(){this.isEnabled()||(this._enabled=!0)}disable(){this.isEnabled()&&(this._enabled=!1)}mousedown(s,f){this.isEnabled()&&s.shiftKey&&s.button===0&&(M.disableDrag(),this._startPos=this._lastPos=f,this._active=!0)}mousemoveWindow(s,f){if(!this._active)return;const d=f;if(this._lastPos.equals(d)||!this._box&&d.dist(this._startPos)v.fitScreenCoordinates(d,m,this._tr.bearing,{linear:!0})};this._fireEvent("boxzoomcancel",s)}keydown(s){this._active&&s.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",s))}reset(){this._active=!1,this._container.classList.remove("maplibregl-crosshair"),this._box&&(M.remove(this._box),this._box=null),M.enableDrag(),delete this._startPos,delete this._lastPos}_fireEvent(s,f){return this._map.fire(new u.k(s,{originalEvent:f}))}}function El(y,s){if(y.length!==s.length)throw new Error(`The number of touches and points are not equal - touches ${y.length}, points ${s.length}`);const f={};for(let d=0;dthis.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=s.timeStamp),d.length===this.numTouches&&(this.centroid=function(m){const v=new u.P(0,0);for(const C of m)v._add(C);return v.div(m.length)}(f),this.touches=El(d,f)))}touchmove(s,f,d){if(this.aborted||!this.centroid)return;const m=El(d,f);for(const v in this.touches){const C=m[v];(!C||C.dist(this.touches[v])>30)&&(this.aborted=!0)}}touchend(s,f,d){if((!this.centroid||s.timeStamp-this.startTime>500)&&(this.aborted=!0),d.length===0){const m=!this.aborted&&this.centroid;if(this.reset(),m)return m}}}class Wf{constructor(s){this.singleTap=new a_(s),this.numTaps=s.numTaps,this.reset()}reset(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()}touchstart(s,f,d){this.singleTap.touchstart(s,f,d)}touchmove(s,f,d){this.singleTap.touchmove(s,f,d)}touchend(s,f,d){const m=this.singleTap.touchend(s,f,d);if(m){const v=s.timeStamp-this.lastTime<500,C=!this.lastTap||this.lastTap.dist(m)<30;if(v&&C||this.reset(),this.count++,this.lastTime=s.timeStamp,this.lastTap=m,this.count===this.numTaps)return this.reset(),m}}}class l_{constructor(s){this._tr=new ou(s),this._zoomIn=new Wf({numTouches:1,numTaps:2}),this._zoomOut=new Wf({numTouches:2,numTaps:1}),this.reset()}reset(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()}touchstart(s,f,d){this._zoomIn.touchstart(s,f,d),this._zoomOut.touchstart(s,f,d)}touchmove(s,f,d){this._zoomIn.touchmove(s,f,d),this._zoomOut.touchmove(s,f,d)}touchend(s,f,d){const m=this._zoomIn.touchend(s,f,d),v=this._zoomOut.touchend(s,f,d),C=this._tr;return m?(this._active=!0,s.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:T=>T.easeTo({duration:300,zoom:C.zoom+1,around:C.unproject(m)},{originalEvent:s})}):v?(this._active=!0,s.preventDefault(),setTimeout(()=>this.reset(),0),{cameraAnimation:T=>T.easeTo({duration:300,zoom:C.zoom-1,around:C.unproject(v)},{originalEvent:s})}):void 0}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class su{constructor(s){this._enabled=!!s.enable,this._moveStateManager=s.moveStateManager,this._clickTolerance=s.clickTolerance||1,this._moveFunction=s.move,this._activateOnStart=!!s.activateOnStart,s.assignEvents(this),this.reset()}reset(s){this._active=!1,this._moved=!1,delete this._lastPoint,this._moveStateManager.endMove(s)}_move(...s){const f=this._moveFunction(...s);if(f.bearingDelta||f.pitchDelta||f.around||f.panDelta)return this._active=!0,f}dragStart(s,f){this.isEnabled()&&!this._lastPoint&&this._moveStateManager.isValidStartEvent(s)&&(this._moveStateManager.startMove(s),this._lastPoint=f.length?f[0]:f,this._activateOnStart&&this._lastPoint&&(this._active=!0))}dragMove(s,f){if(!this.isEnabled())return;const d=this._lastPoint;if(!d)return;if(s.preventDefault(),!this._moveStateManager.isValidMoveEvent(s))return void this.reset(s);const m=f.length?f[0]:f;return!this._moved&&m.dist(d){y.mousedown=y.dragStart,y.mousemoveWindow=y.dragMove,y.mouseup=y.dragEnd,y.contextmenu=function(s){s.preventDefault()}},au=({enable:y,clickTolerance:s,bearingDegreesPerPixelMoved:f=.8})=>{const d=new Hs({checkCorrectEvent:m=>M.mouseButton(m)===0&&m.ctrlKey||M.mouseButton(m)===2});return new su({clickTolerance:s,move:(m,v)=>({bearingDelta:(v.x-m.x)*f}),moveStateManager:d,enable:y,assignEvents:fh})},lu=({enable:y,clickTolerance:s,pitchDegreesPerPixelMoved:f=-.5})=>{const d=new Hs({checkCorrectEvent:m=>M.mouseButton(m)===0&&m.ctrlKey||M.mouseButton(m)===2});return new su({clickTolerance:s,move:(m,v)=>({pitchDelta:(v.y-m.y)*f}),moveStateManager:d,enable:y,assignEvents:fh})};class Jd{constructor(s,f){this._clickTolerance=s.clickTolerance||1,this._map=f,this.reset()}reset(){this._active=!1,this._touches={},this._sum=new u.P(0,0)}minTouchs(){return this._map.cooperativeGestures.isEnabled()?2:1}touchstart(s,f,d){return this._calculateTransform(s,f,d)}touchmove(s,f,d){if(this._active&&!(d.length0&&(this._active=!0);const m=El(d,f),v=new u.P(0,0),C=new u.P(0,0);let T=0;for(const R in m){const B=m[R],U=this._touches[R];U&&(v._add(B),C._add(B.sub(U)),T++,m[R]=B)}if(this._touches=m,TMath.abs(y.x)}class em extends ve{constructor(s){super(),this._currentTouchCount=0,this._map=s}reset(){super.reset(),this._valid=void 0,delete this._firstMove,delete this._lastPoints}touchstart(s,f,d){super.touchstart(s,f,d),this._currentTouchCount=d.length}_start(s){this._lastPoints=s,dh(s[0].sub(s[1]))&&(this._valid=!1)}_move(s,f,d){if(this._map.cooperativeGestures.isEnabled()&&this._currentTouchCount<3)return;const m=s[0].sub(this._lastPoints[0]),v=s[1].sub(this._lastPoints[1]);return this._valid=this.gestureBeginsVertically(m,v,d.timeStamp),this._valid?(this._lastPoints=s,this._active=!0,{pitchDelta:(m.y+v.y)/2*-.5}):void 0}gestureBeginsVertically(s,f,d){if(this._valid!==void 0)return this._valid;const m=s.mag()>=2,v=f.mag()>=2;if(!m&&!v)return;if(!m||!v)return this._firstMove===void 0&&(this._firstMove=d),d-this._firstMove<100&&void 0;const C=s.y>0==f.y>0;return dh(s)&&dh(f)&&C}}const u_={panStep:100,bearingStep:15,pitchStep:10};class $a{constructor(s){this._tr=new ou(s);const f=u_;this._panStep=f.panStep,this._bearingStep=f.bearingStep,this._pitchStep=f.pitchStep,this._rotationDisabled=!1}reset(){this._active=!1}keydown(s){if(s.altKey||s.ctrlKey||s.metaKey)return;let f=0,d=0,m=0,v=0,C=0;switch(s.keyCode){case 61:case 107:case 171:case 187:f=1;break;case 189:case 109:case 173:f=-1;break;case 37:s.shiftKey?d=-1:(s.preventDefault(),v=-1);break;case 39:s.shiftKey?d=1:(s.preventDefault(),v=1);break;case 38:s.shiftKey?m=1:(s.preventDefault(),C=-1);break;case 40:s.shiftKey?m=-1:(s.preventDefault(),C=1);break;default:return}return this._rotationDisabled&&(d=0,m=0),{cameraAnimation:T=>{const P=this._tr;T.easeTo({duration:300,easeId:"keyboardHandler",easing:mi,zoom:f?Math.round(P.zoom)+f*(s.shiftKey?2:1):P.zoom,bearing:P.bearing+d*this._bearingStep,pitch:P.pitch+m*this._pitchStep,offset:[-v*this._panStep,-C*this._panStep],center:P.center},{originalEvent:s})}}}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 mi(y){return y*(2-y)}const rc=4.000244140625;class mh{constructor(s,f){this._onTimeout=d=>{this._type="wheel",this._delta-=this._lastValue,this._active||this._start(d)},this._map=s,this._tr=new ou(s),this._triggerRenderFrame=f,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=.0022222222222222222}setZoomRate(s){this._defaultZoomRate=s}setWheelZoomRate(s){this._wheelZoomRate=s}isEnabled(){return!!this._enabled}isActive(){return!!this._active||this._finishTimeout!==void 0}isZooming(){return!!this._zooming}enable(s){this.isEnabled()||(this._enabled=!0,this._aroundCenter=!!s&&s.around==="center")}disable(){this.isEnabled()&&(this._enabled=!1)}wheel(s){if(!this.isEnabled()||this._map.cooperativeGestures.isEnabled()&&!s[this._map.cooperativeGestures._bypassKey])return;let f=s.deltaMode===WheelEvent.DOM_DELTA_LINE?40*s.deltaY:s.deltaY;const d=E.now(),m=d-(this._lastWheelEventTime||0);this._lastWheelEventTime=d,f!==0&&f%rc==0?this._type="wheel":f!==0&&Math.abs(f)<4?this._type="trackpad":m>400?(this._type=null,this._lastValue=f,this._timeout=setTimeout(this._onTimeout,40,s)):this._type||(this._type=Math.abs(m*f)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,f+=this._lastValue)),s.shiftKey&&f&&(f/=4),this._type&&(this._lastWheelEvent=s,this._delta-=f,this._active||this._start(s)),s.preventDefault()}_start(s){if(!this._delta)return;this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);const f=M.mousePos(this._map.getCanvas(),s),d=this._tr;this._around=f.y>d.transform.height/2-d.transform.getHorizon()?u.M.convert(this._aroundCenter?d.center:d.unproject(f)):u.M.convert(d.center),this._aroundPoint=d.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._triggerRenderFrame())}renderFrame(){if(!this._frameId||(this._frameId=null,!this.isActive()))return;const s=this._tr.transform;if(this._delta!==0){const T=this._type==="wheel"&&Math.abs(this._delta)>rc?this._wheelZoomRate:this._defaultZoomRate;let P=2/(1+Math.exp(-Math.abs(this._delta*T)));this._delta<0&&P!==0&&(P=1/P);const R=typeof this._targetZoom=="number"?s.zoomScale(this._targetZoom):s.scale;this._targetZoom=Math.min(s.maxZoom,Math.max(s.minZoom,s.scaleZoom(R*P))),this._type==="wheel"&&(this._startZoom=s.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}const f=typeof this._targetZoom=="number"?this._targetZoom:s.zoom,d=this._startZoom,m=this._easing;let v,C=!1;if(this._type==="wheel"&&d&&m){const T=Math.min((E.now()-this._lastWheelEventTime)/200,1),P=m(T);v=u.z.number(d,f,P),T<1?this._frameId||(this._frameId=!0):C=!0}else v=f,C=!0;return this._active=!0,C&&(this._active=!1,this._finishTimeout=setTimeout(()=>{this._zooming=!1,this._triggerRenderFrame(),delete this._targetZoom,delete this._finishTimeout},200)),{noInertia:!0,needsRenderFrame:!C,zoomDelta:v-s.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}_smoothOutEasing(s){let f=u.b7;if(this._prevEase){const d=this._prevEase,m=(E.now()-d.start)/d.duration,v=d.easing(m+.01)-d.easing(m),C=.27/Math.sqrt(v*v+1e-4)*.01,T=Math.sqrt(.0729-C*C);f=u.b6(C,T,.25,1)}return this._prevEase={start:E.now(),duration:s,easing:f},f}reset(){this._active=!1,this._zooming=!1,delete this._targetZoom,this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout)}}class Xf{constructor(s,f){this._clickZoom=s,this._tapZoom=f}enable(){this._clickZoom.enable(),this._tapZoom.enable()}disable(){this._clickZoom.disable(),this._tapZoom.disable()}isEnabled(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()}isActive(){return this._clickZoom.isActive()||this._tapZoom.isActive()}}class nm{constructor(s){this._tr=new ou(s),this.reset()}reset(){this._active=!1}dblclick(s,f){return s.preventDefault(),{cameraAnimation:d=>{d.easeTo({duration:300,zoom:this._tr.zoom+(s.shiftKey?-1:1),around:this._tr.unproject(f)},{originalEvent:s})}}}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class im{constructor(){this._tap=new Wf({numTouches:1,numTaps:1}),this.reset()}reset(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,delete this._tapPoint,this._tap.reset()}touchstart(s,f,d){if(!this._swipePoint)if(this._tapTime){const m=f[0],v=s.timeStamp-this._tapTime<500,C=this._tapPoint.dist(m)<30;v&&C?d.length>0&&(this._swipePoint=m,this._swipeTouch=d[0].identifier):this.reset()}else this._tap.touchstart(s,f,d)}touchmove(s,f,d){if(this._tapTime){if(this._swipePoint){if(d[0].identifier!==this._swipeTouch)return;const m=f[0],v=m.y-this._swipePoint.y;return this._swipePoint=m,s.preventDefault(),this._active=!0,{zoomDelta:v/128}}}else this._tap.touchmove(s,f,d)}touchend(s,f,d){if(this._tapTime)this._swipePoint&&d.length===0&&this.reset();else{const m=this._tap.touchend(s,f,d);m&&(this._tapTime=s.timeStamp,this._tapPoint=m)}}touchcancel(){this.reset()}enable(){this._enabled=!0}disable(){this._enabled=!1,this.reset()}isEnabled(){return this._enabled}isActive(){return this._active}}class rm{constructor(s,f,d){this._el=s,this._mousePan=f,this._touchPan=d}enable(s){this._inertiaOptions=s||{},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()}}class Ss{constructor(s,f,d){this._pitchWithRotate=s.pitchWithRotate,this._mouseRotate=f,this._mousePitch=d}enable(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()}disable(){this._mouseRotate.disable(),this._mousePitch.disable()}isEnabled(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())}isActive(){return this._mouseRotate.isActive()||this._mousePitch.isActive()}}class oc{constructor(s,f,d,m){this._el=s,this._touchZoom=f,this._touchRotate=d,this._tapDragZoom=m,this._rotationDisabled=!1,this._enabled=!0}enable(s){this._touchZoom.enable(s),this._rotationDisabled||this._touchRotate.enable(s),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()}disableRotation(){this._rotationDisabled=!0,this._touchRotate.disable()}enableRotation(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()}}class De{constructor(s,f){this._bypassKey=navigator.userAgent.indexOf("Mac")!==-1?"metaKey":"ctrlKey",this._map=s,this._options=f,this._enabled=!1}isActive(){return!1}reset(){}_setupUI(){if(this._container)return;const s=this._map.getCanvasContainer();s.classList.add("maplibregl-cooperative-gestures"),this._container=M.create("div","maplibregl-cooperative-gesture-screen",s);let f=this._map._getUIString("CooperativeGesturesHandler.WindowsHelpText");this._bypassKey==="metaKey"&&(f=this._map._getUIString("CooperativeGesturesHandler.MacHelpText"));const d=this._map._getUIString("CooperativeGesturesHandler.MobileHelpText"),m=document.createElement("div");m.className="maplibregl-desktop-message",m.textContent=f,this._container.appendChild(m);const v=document.createElement("div");v.className="maplibregl-mobile-message",v.textContent=d,this._container.appendChild(v),this._container.setAttribute("aria-hidden","true")}_destoryUI(){this._container&&(M.remove(this._container),this._map.getCanvasContainer().classList.remove("maplibregl-cooperative-gestures")),delete this._container}enable(){this._setupUI(),this._enabled=!0}disable(){this._enabled=!1,this._destoryUI()}isEnabled(){return this._enabled}touchmove(s){this._onCooperativeGesture(s.touches.length===1)}wheel(s){this._map.scrollZoom.isEnabled()&&this._onCooperativeGesture(!s[this._bypassKey])}_onCooperativeGesture(s){this._enabled&&s&&(this._container.classList.add("maplibregl-show"),setTimeout(()=>{this._container.classList.remove("maplibregl-show")},100))}}const Ue=y=>y.zoom||y.drag||y.pitch||y.rotate;class gh extends u.k{}function sc(y){return y.panDelta&&y.panDelta.mag()||y.zoomDelta||y.bearingDelta||y.pitchDelta}class $f{constructor(s,f){this.handleWindowEvent=m=>{this.handleEvent(m,`${m.type}Window`)},this.handleEvent=(m,v)=>{if(m.type==="blur")return void this.stop(!0);this._updatingCamera=!0;const C=m.type==="renderFrame"?void 0:m,T={needsRenderFrame:!1},P={},R={},B=m.touches,U=B?this._getMapTouches(B):void 0,X=U?M.touchPos(this._map.getCanvas(),U):M.mousePos(this._map.getCanvas(),m);for(const{handlerName:ct,handler:tt,allowed:wt}of this._handlers){if(!tt.isEnabled())continue;let zt;this._blockedByActive(R,wt,ct)?tt.reset():tt[v||m.type]&&(zt=tt[v||m.type](m,X,U),this.mergeHandlerResult(T,P,zt,ct,C),zt&&zt.needsRenderFrame&&this._triggerRenderFrame()),(zt||tt.isActive())&&(R[ct]=tt)}const rt={};for(const ct in this._previousActiveHandlers)R[ct]||(rt[ct]=C);this._previousActiveHandlers=R,(Object.keys(rt).length||sc(T))&&(this._changes.push([T,P,rt]),this._triggerRenderFrame()),(Object.keys(R).length||sc(T))&&this._map._stop(!0),this._updatingCamera=!1;const{cameraAnimation:it}=T;it&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],it(this._map))},this._map=s,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Kd(s),this._bearingSnap=f.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(f);const d=this._el;this._listeners=[[d,"touchstart",{passive:!0}],[d,"touchmove",{passive:!1}],[d,"touchend",void 0],[d,"touchcancel",void 0],[d,"mousedown",void 0],[d,"mousemove",void 0],[d,"mouseup",void 0],[document,"mousemove",{capture:!0}],[document,"mouseup",void 0],[d,"mouseover",void 0],[d,"mouseout",void 0],[d,"dblclick",void 0],[d,"click",void 0],[d,"keydown",{capture:!1}],[d,"keyup",void 0],[d,"wheel",{passive:!1}],[d,"contextmenu",void 0],[window,"blur",void 0]];for(const[m,v,C]of this._listeners)M.addEventListener(m,v,m===document?this.handleWindowEvent:this.handleEvent,C)}destroy(){for(const[s,f,d]of this._listeners)M.removeEventListener(s,f,s===document?this.handleWindowEvent:this.handleEvent,d)}_addDefaultHandlers(s){const f=this._map,d=f.getCanvasContainer();this._add("mapEvent",new xs(f,s));const m=f.boxZoom=new ws(f,s);this._add("boxZoom",m),s.interactive&&s.boxZoom&&m.enable();const v=f.cooperativeGestures=new De(f,s.cooperativeGestures);this._add("cooperativeGestures",v),s.cooperativeGestures&&v.enable();const C=new l_(f),T=new nm(f);f.doubleClickZoom=new Xf(T,C),this._add("tapZoom",C),this._add("clickZoom",T),s.interactive&&s.doubleClickZoom&&f.doubleClickZoom.enable();const P=new im;this._add("tapDragZoom",P);const R=f.touchPitch=new em(f);this._add("touchPitch",R),s.interactive&&s.touchPitch&&f.touchPitch.enable(s.touchPitch);const B=au(s),U=lu(s);f.dragRotate=new Ss(s,B,U),this._add("mouseRotate",B,["mousePitch"]),this._add("mousePitch",U,["mouseRotate"]),s.interactive&&s.dragRotate&&f.dragRotate.enable();const X=(({enable:zt,clickTolerance:ht})=>{const Mt=new Hs({checkCorrectEvent:Ft=>M.mouseButton(Ft)===0&&!Ft.ctrlKey});return new su({clickTolerance:ht,move:(Ft,Ut)=>({around:Ut,panDelta:Ut.sub(Ft)}),activateOnStart:!0,moveStateManager:Mt,enable:zt,assignEvents:fh})})(s),rt=new Jd(s,f);f.dragPan=new rm(d,X,rt),this._add("mousePan",X),this._add("touchPan",rt,["touchZoom","touchRotate"]),s.interactive&&s.dragPan&&f.dragPan.enable(s.dragPan);const it=new Hf,ct=new tm;f.touchZoomRotate=new oc(d,ct,it,P),this._add("touchRotate",it,["touchPan","touchZoom"]),this._add("touchZoom",ct,["touchPan","touchRotate"]),s.interactive&&s.touchZoomRotate&&f.touchZoomRotate.enable(s.touchZoomRotate);const tt=f.scrollZoom=new mh(f,()=>this._triggerRenderFrame());this._add("scrollZoom",tt,["mousePan"]),s.interactive&&s.scrollZoom&&f.scrollZoom.enable(s.scrollZoom);const wt=f.keyboard=new $a(f);this._add("keyboard",wt),s.interactive&&s.keyboard&&f.keyboard.enable(),this._add("blockableMapEvent",new Ws(f))}_add(s,f,d){this._handlers.push({handlerName:s,handler:f,allowed:d}),this._handlersById[s]=f}stop(s){if(!this._updatingCamera){for(const{handler:f}of this._handlers)f.reset();this._inertia.clear(),this._fireEvents({},{},s),this._changes=[]}}isActive(){for(const{handler:s}of this._handlers)if(s.isActive())return!0;return!1}isZooming(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()}isRotating(){return!!this._eventsInProgress.rotate}isMoving(){return!!Ue(this._eventsInProgress)||this.isZooming()}_blockedByActive(s,f,d){for(const m in s)if(m!==d&&(!f||f.indexOf(m)<0))return!0;return!1}_getMapTouches(s){const f=[];for(const d of s)this._el.contains(d.target)&&f.push(d);return f}mergeHandlerResult(s,f,d,m,v){if(!d)return;u.e(s,d);const C={handlerName:m,originalEvent:d.originalEvent||v};d.zoomDelta!==void 0&&(f.zoom=C),d.panDelta!==void 0&&(f.drag=C),d.pitchDelta!==void 0&&(f.pitch=C),d.bearingDelta!==void 0&&(f.rotate=C)}_applyChanges(){const s={},f={},d={};for(const[m,v,C]of this._changes)m.panDelta&&(s.panDelta=(s.panDelta||new u.P(0,0))._add(m.panDelta)),m.zoomDelta&&(s.zoomDelta=(s.zoomDelta||0)+m.zoomDelta),m.bearingDelta&&(s.bearingDelta=(s.bearingDelta||0)+m.bearingDelta),m.pitchDelta&&(s.pitchDelta=(s.pitchDelta||0)+m.pitchDelta),m.around!==void 0&&(s.around=m.around),m.pinchAround!==void 0&&(s.pinchAround=m.pinchAround),m.noInertia&&(s.noInertia=m.noInertia),u.e(f,v),u.e(d,C);this._updateMapTransform(s,f,d),this._changes=[]}_updateMapTransform(s,f,d){const m=this._map,v=m._getTransformForUpdate(),C=m.terrain;if(!(sc(s)||C&&this._terrainMovement))return this._fireEvents(f,d,!0);let{panDelta:T,zoomDelta:P,bearingDelta:R,pitchDelta:B,around:U,pinchAround:X}=s;X!==void 0&&(U=X),m._stop(!0),U=U||m.transform.centerPoint;const rt=v.pointLocation(T?U.sub(T):U);R&&(v.bearing+=R),B&&(v.pitch+=B),P&&(v.zoom+=P),C?this._terrainMovement||!f.drag&&!f.zoom?f.drag&&this._terrainMovement?v.center=v.pointLocation(v.centerPoint.sub(T)):v.setLocationAtPoint(rt,U):(this._terrainMovement=!0,this._map._elevationFreeze=!0,v.setLocationAtPoint(rt,U),this._map.once("moveend",()=>{this._map._elevationFreeze=!1,this._terrainMovement=!1,v.recalculateZoom(m.terrain)})):v.setLocationAtPoint(rt,U),m._applyUpdatedTransform(v),this._map._update(),s.noInertia||this._inertia.record(s),this._fireEvents(f,d,!0)}_fireEvents(s,f,d){const m=Ue(this._eventsInProgress),v=Ue(s),C={};for(const B in s){const{originalEvent:U}=s[B];this._eventsInProgress[B]||(C[`${B}start`]=U),this._eventsInProgress[B]=s[B]}!m&&v&&this._fireEvent("movestart",v.originalEvent);for(const B in C)this._fireEvent(B,C[B]);v&&this._fireEvent("move",v.originalEvent);for(const B in s){const{originalEvent:U}=s[B];this._fireEvent(B,U)}const T={};let P;for(const B in this._eventsInProgress){const{handlerName:U,originalEvent:X}=this._eventsInProgress[B];this._handlersById[U].isActive()||(delete this._eventsInProgress[B],P=f[U]||X,T[`${B}end`]=P)}for(const B in T)this._fireEvent(B,T[B]);const R=Ue(this._eventsInProgress);if(d&&(m||v)&&!R){this._updatingCamera=!0;const B=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),U=X=>X!==0&&-this._bearingSnap{delete this._frameId,this.handleEvent(new gh("renderFrame",{timeStamp:s})),this._applyChanges()})}_triggerRenderFrame(){this._frameId===void 0&&(this._frameId=this._requestFrame())}}class vo extends u.E{constructor(s,f){super(),this._renderFrameCallback=()=>{const d=Math.min((E.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(d)),d<1&&this._easeFrameId?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},this._moving=!1,this._zooming=!1,this.transform=s,this._bearingSnap=f.bearingSnap,this.on("moveend",()=>{delete this._requestedCameraState})}getCenter(){return new u.M(this.transform.center.lng,this.transform.center.lat)}setCenter(s,f){return this.jumpTo({center:s},f)}panBy(s,f,d){return s=u.P.convert(s).mult(-1),this.panTo(this.transform.center,u.e({offset:s},f),d)}panTo(s,f,d){return this.easeTo(u.e({center:s},f),d)}getZoom(){return this.transform.zoom}setZoom(s,f){return this.jumpTo({zoom:s},f),this}zoomTo(s,f,d){return this.easeTo(u.e({zoom:s},f),d)}zoomIn(s,f){return this.zoomTo(this.getZoom()+1,s,f),this}zoomOut(s,f){return this.zoomTo(this.getZoom()-1,s,f),this}getBearing(){return this.transform.bearing}setBearing(s,f){return this.jumpTo({bearing:s},f),this}getPadding(){return this.transform.padding}setPadding(s,f){return this.jumpTo({padding:s},f),this}rotateTo(s,f,d){return this.easeTo(u.e({bearing:s},f),d)}resetNorth(s,f){return this.rotateTo(0,u.e({duration:1e3},s),f),this}resetNorthPitch(s,f){return this.easeTo(u.e({bearing:0,pitch:0,duration:1e3},s),f),this}snapToNorth(s,f){return Math.abs(this.getBearing()){if(this._zooming&&(m.zoom=u.z.number(v,tt,$t)),this._rotating&&(m.bearing=u.z.number(C,R,$t)),this._pitching&&(m.pitch=u.z.number(T,B,$t)),this._padding&&(m.interpolatePadding(P,U,$t),rt=m.centerPoint.add(X)),this.terrain&&!s.freezeElevation&&this._updateElevation($t),Mt)m.setLocationAtPoint(Mt,Ft);else{const ne=m.zoomScale(m.zoom-v),ee=tt>v?Math.min(2,ht):Math.max(.5,ht),le=Math.pow(ee,1-$t),pe=m.unproject(wt.add(zt.mult($t*le)).mult(ne));m.setLocationAtPoint(m.renderWorldCopies?pe.wrap():pe,rt)}this._applyUpdatedTransform(m),this._fireMoveEvents(f)},$t=>{this.terrain&&this._finalizeElevation(),this._afterEase(f,$t)},s),this}_prepareEase(s,f,d={}){this._moving=!0,f||d.moving||this.fire(new u.k("movestart",s)),this._zooming&&!d.zooming&&this.fire(new u.k("zoomstart",s)),this._rotating&&!d.rotating&&this.fire(new u.k("rotatestart",s)),this._pitching&&!d.pitching&&this.fire(new u.k("pitchstart",s))}_prepareElevation(s){this._elevationCenter=s,this._elevationStart=this.transform.elevation,this._elevationTarget=this.terrain.getElevationForLngLatZoom(s,this.transform.tileZoom),this._elevationFreeze=!0}_updateElevation(s){this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);const f=this.terrain.getElevationForLngLatZoom(this._elevationCenter,this.transform.tileZoom);if(s<1&&f!==this._elevationTarget){const d=this._elevationTarget-this._elevationStart;this._elevationStart+=s*(d-(f-(d*s+this._elevationStart))/(1-s)),this._elevationTarget=f}this.transform.elevation=u.z.number(this._elevationStart,this._elevationTarget,s)}_finalizeElevation(){this._elevationFreeze=!1,this.transform.recalculateZoom(this.terrain)}_getTransformForUpdate(){return this.transformCameraUpdate?(this._requestedCameraState||(this._requestedCameraState=this.transform.clone()),this._requestedCameraState):this.transform}_applyUpdatedTransform(s){if(!this.transformCameraUpdate)return;const f=s.clone(),{center:d,zoom:m,pitch:v,bearing:C,elevation:T}=this.transformCameraUpdate(f);d&&(f.center=d),m!==void 0&&(f.zoom=m),v!==void 0&&(f.pitch=v),C!==void 0&&(f.bearing=C),T!==void 0&&(f.elevation=T),this.transform.apply(f)}_fireMoveEvents(s){this.fire(new u.k("move",s)),this._zooming&&this.fire(new u.k("zoom",s)),this._rotating&&this.fire(new u.k("rotate",s)),this._pitching&&this.fire(new u.k("pitch",s))}_afterEase(s,f){if(this._easeId&&f&&this._easeId===f)return;delete this._easeId;const d=this._zooming,m=this._rotating,v=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,d&&this.fire(new u.k("zoomend",s)),m&&this.fire(new u.k("rotateend",s)),v&&this.fire(new u.k("pitchend",s)),this.fire(new u.k("moveend",s))}flyTo(s,f){var d;if(!s.essential&&E.prefersReducedMotion){const Ln=u.L(s,["center","zoom","bearing","pitch","around"]);return this.jumpTo(Ln,f)}this.stop(),s=u.e({offset:[0,0],speed:1.2,curve:1.42,easing:u.b7},s);const m=this._getTransformForUpdate(),v=this.getZoom(),C=this.getBearing(),T=this.getPitch(),P=this.getPadding(),R="bearing"in s?this._normalizeBearing(s.bearing,C):C,B="pitch"in s?+s.pitch:T,U="padding"in s?s.padding:m.padding,X=u.P.convert(s.offset);let rt=m.centerPoint.add(X);const it=m.pointLocation(rt),{center:ct,zoom:tt}=m.getConstrained(u.M.convert(s.center||it),(d=s.zoom)!==null&&d!==void 0?d:v);this._normalizeCenter(ct);const wt=m.zoomScale(tt-v),zt=m.project(it),ht=m.project(ct).sub(zt);let Mt=s.curve;const Ft=Math.max(m.width,m.height),Ut=Ft/wt,$t=ht.mag();if("minZoom"in s){const Ln=u.ac(Math.min(s.minZoom,v,tt),m.minZoom,m.maxZoom),Qe=Ft/m.zoomScale(Ln-v);Mt=Math.sqrt(Qe/$t*2)}const ne=Mt*Mt;function ee(Ln){const Qe=(Ut*Ut-Ft*Ft+(Ln?-1:1)*ne*ne*$t*$t)/(2*(Ln?Ut:Ft)*ne*$t);return Math.log(Math.sqrt(Qe*Qe+1)-Qe)}function le(Ln){return(Math.exp(Ln)-Math.exp(-Ln))/2}function pe(Ln){return(Math.exp(Ln)+Math.exp(-Ln))/2}const cn=ee(!1);let me=function(Ln){return pe(cn)/pe(cn+Mt*Ln)},je=function(Ln){return Ft*((pe(cn)*(le(Qe=cn+Mt*Ln)/pe(Qe))-le(cn))/ne)/$t;var Qe},hn=(ee(!0)-cn)/Mt;if(Math.abs($t)<1e-6||!isFinite(hn)){if(Math.abs(Ft-Ut)<1e-6)return this.easeTo(s,f);const Ln=Uts.maxDuration&&(s.duration=0),this._zooming=!0,this._rotating=C!==R,this._pitching=B!==T,this._padding=!m.isPaddingEqual(U),this._prepareEase(f,!1),this.terrain&&this._prepareElevation(ct),this._ease(Ln=>{const Qe=Ln*hn,dn=1/me(Qe);m.zoom=Ln===1?tt:v+m.scaleZoom(dn),this._rotating&&(m.bearing=u.z.number(C,R,Ln)),this._pitching&&(m.pitch=u.z.number(T,B,Ln)),this._padding&&(m.interpolatePadding(P,U,Ln),rt=m.centerPoint.add(X)),this.terrain&&!s.freezeElevation&&this._updateElevation(Ln);const yn=Ln===1?ct:m.unproject(zt.add(ht.mult(je(Qe))).mult(dn));m.setLocationAtPoint(m.renderWorldCopies?yn.wrap():yn,rt),this._applyUpdatedTransform(m),this._fireMoveEvents(f)},()=>{this.terrain&&this._finalizeElevation(),this._afterEase(f)},s),this}isEasing(){return!!this._easeFrameId}stop(){return this._stop()}_stop(s,f){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){const d=this._onEaseEnd;delete this._onEaseEnd,d.call(this,f)}if(!s){const d=this.handlers;d&&d.stop(!1)}return this}_ease(s,f,d){d.animate===!1||d.duration===0?(s(1),f()):(this._easeStart=E.now(),this._easeOptions=d,this._onEaseFrame=s,this._onEaseEnd=f,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))}_normalizeBearing(s,f){s=u.b1(s,-180,180);const d=Math.abs(s-f);return Math.abs(s-360-f)180?-360:d<-180?360:0}queryTerrainElevation(s){return this.terrain?this.terrain.getElevationForLngLatZoom(u.M.convert(s),this.transform.tileZoom)-this.transform.elevation:null}}const Yf={compact:!0,customAttribution:'MapLibre'};class Is{constructor(s=Yf){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=f=>{!f||f.sourceDataType!=="metadata"&&f.sourceDataType!=="visibility"&&f.dataType!=="style"&&f.type!=="terrain"||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=s}getDefaultPosition(){return"bottom-right"}onAdd(s){return this._map=s,this._compact=this.options.compact,this._container=M.create("details","maplibregl-ctrl maplibregl-ctrl-attrib"),this._compactButton=M.create("summary","maplibregl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=M.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(){M.remove(this._container),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(s,f){const d=this._map._getUIString(`AttributionControl.${f}`);s.title=d,s.setAttribute("aria-label",d)}_updateAttributions(){if(!this._map.style)return;let s=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?s=s.concat(this.options.customAttribution.map(m=>typeof m!="string"?"":m)):typeof this.options.customAttribution=="string"&&s.push(this.options.customAttribution)),this._map.style.stylesheet){const m=this._map.style.stylesheet;this.styleOwner=m.owner,this.styleId=m.id}const f=this._map.style.sourceCaches;for(const m in f){const v=f[m];if(v.used||v.usedForTerrain){const C=v.getSource();C.attribution&&s.indexOf(C.attribution)<0&&s.push(C.attribution)}}s=s.filter(m=>String(m).trim()),s.sort((m,v)=>m.length-v.length),s=s.filter((m,v)=>{for(let C=v+1;C=0)return!1;return!0});const d=s.join(" | ");d!==this._attribHTML&&(this._attribHTML=d,s.length?(this._innerContainer.innerHTML=d,this._container.classList.remove("maplibregl-attrib-empty")):this._container.classList.add("maplibregl-attrib-empty"),this._updateCompact(),this._editLink=null)}}class om{constructor(s={}){this._updateCompact=()=>{const f=this._container.children;if(f.length){const d=f[0];this._map.getCanvasContainer().offsetWidth<=640||this._compact?this._compact!==!1&&d.classList.add("maplibregl-compact"):d.classList.remove("maplibregl-compact")}},this.options=s}getDefaultPosition(){return"bottom-left"}onAdd(s){this._map=s,this._compact=this.options&&this.options.compact,this._container=M.create("div","maplibregl-ctrl");const f=M.create("a","maplibregl-ctrl-logo");return f.target="_blank",f.rel="noopener nofollow",f.href="https://maplibre.org/",f.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),f.setAttribute("rel","noopener nofollow"),this._container.appendChild(f),this._container.style.display="block",this._map.on("resize",this._updateCompact),this._updateCompact(),this._container}onRemove(){M.remove(this._container),this._map.off("resize",this._updateCompact),this._map=void 0,this._compact=void 0}}class ac{constructor(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1}add(s){const f=++this._id;return this._queue.push({callback:s,id:f,cancelled:!1}),f}remove(s){const f=this._currentlyRunning,d=f?this._queue.concat(f):this._queue;for(const m of d)if(m.id===s)return void(m.cancelled=!0)}run(s=0){if(this._currentlyRunning)throw new Error("Attempting to run(), but is already running.");const f=this._currentlyRunning=this._queue;this._queue=[];for(const d of f)if(!d.cancelled&&(d.callback(s),this._cleared))break;this._cleared=!1,this._currentlyRunning=!1}clear(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]}}var Ai=u.X([{name:"a_pos3d",type:"Int16",components:3}]);class Zi extends u.E{constructor(s){super(),this.sourceCache=s,this._tiles={},this._renderableTilesKeys=[],this._sourceTileCache={},this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.deltaZoom=1,s.usedForTerrain=!0,s.tileSize=this.tileSize*2**this.deltaZoom}destruct(){this.sourceCache.usedForTerrain=!1,this.sourceCache.tileSize=null}update(s,f){this.sourceCache.update(s,f),this._renderableTilesKeys=[];const d={};for(const m of s.coveringTiles({tileSize:this.tileSize,minzoom:this.minzoom,maxzoom:this.maxzoom,reparseOverscaled:!1,terrain:f}))d[m.key]=!0,this._renderableTilesKeys.push(m.key),this._tiles[m.key]||(m.posMatrix=new Float64Array(16),u.aN(m.posMatrix,0,u.W,0,u.W,0,1),this._tiles[m.key]=new ns(m,this.tileSize));for(const m in this._tiles)d[m]||delete this._tiles[m]}freeRtt(s){for(const f in this._tiles){const d=this._tiles[f];(!s||d.tileID.equals(s)||d.tileID.isChildOf(s)||s.isChildOf(d.tileID))&&(d.rtt=[])}}getRenderableTiles(){return this._renderableTilesKeys.map(s=>this.getTileByID(s))}getTileByID(s){return this._tiles[s]}getTerrainCoords(s){const f={};for(const d of this._renderableTilesKeys){const m=this._tiles[d].tileID;if(m.canonical.equals(s.canonical)){const v=s.clone();v.posMatrix=new Float64Array(16),u.aN(v.posMatrix,0,u.W,0,u.W,0,1),f[d]=v}else if(m.canonical.isChildOf(s.canonical)){const v=s.clone();v.posMatrix=new Float64Array(16);const C=m.canonical.z-s.canonical.z,T=m.canonical.x-(m.canonical.x>>C<>C<>C;u.aN(v.posMatrix,0,R,0,R,0,1),u.H(v.posMatrix,v.posMatrix,[-T*R,-P*R,0]),f[d]=v}else if(s.canonical.isChildOf(m.canonical)){const v=s.clone();v.posMatrix=new Float64Array(16);const C=s.canonical.z-m.canonical.z,T=s.canonical.x-(s.canonical.x>>C<>C<>C;u.aN(v.posMatrix,0,u.W,0,u.W,0,1),u.H(v.posMatrix,v.posMatrix,[T*R,P*R,0]),u.J(v.posMatrix,v.posMatrix,[1/2**C,1/2**C,0]),f[d]=v}}return f}getSourceTile(s,f){const d=this.sourceCache._source;let m=s.overscaledZ-this.deltaZoom;if(m>d.maxzoom&&(m=d.maxzoom),m=d.minzoom&&(!v||!v.dem);)v=this.sourceCache.getTileByID(s.scaledTo(m--).key);return v}tilesAfterTime(s=Date.now()){return Object.values(this._tiles).filter(f=>f.timeAdded>=s)}}class sm{constructor(s,f,d){this.painter=s,this.sourceCache=new Zi(f),this.options=d,this.exaggeration=typeof d.exaggeration=="number"?d.exaggeration:1,this.qualityFactor=2,this.meshSize=128,this._demMatrixCache={},this.coordsIndex=[],this._coordsTextureSize=1024}getDEMElevation(s,f,d,m=u.W){var v;if(!(f>=0&&f=0&&ds.canonical.z&&(s.canonical.z>=m?v=s.canonical.z-m:u.w("cannot calculate elevation if elevation maxzoom > source.maxzoom"));const C=s.canonical.x-(s.canonical.x>>v<>v<>8<<4|v>>8,f[C+3]=0;const d=new u.R({width:this._coordsTextureSize,height:this._coordsTextureSize},new Uint8Array(f.buffer)),m=new mt(s,d,s.gl.RGBA,{premultiply:!1});return m.bind(s.gl.NEAREST,s.gl.CLAMP_TO_EDGE),this._coordsTexture=m,m}pointCoordinate(s){this.painter.maybeDrawDepthAndCoords(!0);const f=new Uint8Array(4),d=this.painter.context,m=d.gl,v=Math.round(s.x*this.painter.pixelRatio/devicePixelRatio),C=Math.round(s.y*this.painter.pixelRatio/devicePixelRatio),T=Math.round(this.painter.height/devicePixelRatio);d.bindFramebuffer.set(this.getFramebuffer("coords").framebuffer),m.readPixels(v,T-C-1,1,1,m.RGBA,m.UNSIGNED_BYTE,f),d.bindFramebuffer.set(null);const P=f[0]+(f[2]>>4<<8),R=f[1]+((15&f[2])<<8),B=this.coordsIndex[255-f[3]],U=B&&this.sourceCache.getTileByID(B);if(!U)return null;const X=this._coordsTextureSize,rt=(1<s.id!==f),this._recentlyUsed.push(s.id)}stampObject(s){s.stamp=++this._stamp}getOrCreateFreeObject(){for(const f of this._recentlyUsed)if(!this._objects[f].inUse)return this._objects[f];if(this._objects.length>=this._size)throw new Error("No free RenderPool available, call freeAllObjects() required!");const s=this._createObject(this._objects.length);return this._objects.push(s),s}freeObject(s){s.inUse=!1}freeAllObjects(){for(const s of this._objects)this.freeObject(s)}isFull(){return!(this._objects.length!s.inUse)===!1}}const xa={background:!0,fill:!0,line:!0,raster:!0,hillshade:!0};class Kf{constructor(s,f){this.painter=s,this.terrain=f,this.pool=new lc(s.context,30,f.sourceCache.tileSize*f.qualityFactor)}destruct(){this.pool.destruct()}getTexture(s){return this.pool.getObjectForId(s.rtt[this._stacks.length-1].id).texture}prepareForRender(s,f){this._stacks=[],this._prevType=null,this._rttTiles=[],this._renderableTiles=this.terrain.sourceCache.getRenderableTiles(),this._renderableLayerIds=s._order.filter(d=>!s._layers[d].isHidden(f)),this._coordsDescendingInv={};for(const d in s.sourceCaches){this._coordsDescendingInv[d]={};const m=s.sourceCaches[d].getVisibleCoordinates();for(const v of m){const C=this.terrain.sourceCache.getTerrainCoords(v);for(const T in C)this._coordsDescendingInv[d][T]||(this._coordsDescendingInv[d][T]=[]),this._coordsDescendingInv[d][T].push(C[T])}}this._coordsDescendingInvStr={};for(const d of s._order){const m=s._layers[d],v=m.source;if(xa[m.type]&&!this._coordsDescendingInvStr[v]){this._coordsDescendingInvStr[v]={};for(const C in this._coordsDescendingInv[v])this._coordsDescendingInvStr[v][C]=this._coordsDescendingInv[v][C].map(T=>T.key).sort().join()}}for(const d of this._renderableTiles)for(const m in this._coordsDescendingInvStr){const v=this._coordsDescendingInvStr[m][d.tileID.key];v&&v!==d.rttCoords[m]&&(d.rtt=[])}}renderLayer(s){if(s.isHidden(this.painter.transform.zoom))return!1;const f=s.type,d=this.painter,m=this._renderableLayerIds[this._renderableLayerIds.length-1]===s.id;if(xa[f]&&(this._prevType&&xa[this._prevType]||this._stacks.push([]),this._prevType=f,this._stacks[this._stacks.length-1].push(s.id),!m))return!0;if(xa[this._prevType]||xa[f]&&m){this._prevType=f;const v=this._stacks.length-1,C=this._stacks[v]||[];for(const T of this._renderableTiles){if(this.pool.isFull()&&(ch(this.painter,this.terrain,this._rttTiles),this._rttTiles=[],this.pool.freeAllObjects()),this._rttTiles.push(T),T.rtt[v]){const R=this.pool.getObjectForId(T.rtt[v].id);if(R.stamp===T.rtt[v].stamp){this.pool.useObject(R);continue}}const P=this.pool.getOrCreateFreeObject();this.pool.useObject(P),this.pool.stampObject(P),T.rtt[v]={id:P.id,stamp:P.stamp},d.context.bindFramebuffer.set(P.fbo.framebuffer),d.context.clear({color:u.aO.transparent,stencil:0}),d.currentStencilSource=void 0;for(let R=0;R{y.touchstart=y.dragStart,y.touchmoveWindow=y.dragMove,y.touchend=y.dragEnd},tp={showCompass:!0,showZoom:!0,visualizePitch:!1};class ep{constructor(s,f,d=!1){this.mousedown=C=>{this.startMouse(u.e({},C,{ctrlKey:!0,preventDefault:()=>C.preventDefault()}),M.mousePos(this.element,C)),M.addEventListener(window,"mousemove",this.mousemove),M.addEventListener(window,"mouseup",this.mouseup)},this.mousemove=C=>{this.moveMouse(C,M.mousePos(this.element,C))},this.mouseup=C=>{this.mouseRotate.dragEnd(C),this.mousePitch&&this.mousePitch.dragEnd(C),this.offTemp()},this.touchstart=C=>{C.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=M.touchPos(this.element,C.targetTouches)[0],this.startTouch(C,this._startPos),M.addEventListener(window,"touchmove",this.touchmove,{passive:!1}),M.addEventListener(window,"touchend",this.touchend))},this.touchmove=C=>{C.targetTouches.length!==1?this.reset():(this._lastPos=M.touchPos(this.element,C.targetTouches)[0],this.moveTouch(C,this._lastPos))},this.touchend=C=>{C.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),this.touchRotate.reset(),this.touchPitch&&this.touchPitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()},this._clickTolerance=10;const m=s.dragRotate._mouseRotate.getClickTolerance(),v=s.dragRotate._mousePitch.getClickTolerance();this.element=f,this.mouseRotate=au({clickTolerance:m,enable:!0}),this.touchRotate=(({enable:C,clickTolerance:T,bearingDegreesPerPixelMoved:P=.8})=>{const R=new Ie;return new su({clickTolerance:T,move:(B,U)=>({bearingDelta:(U.x-B.x)*P}),moveStateManager:R,enable:C,assignEvents:_h})})({clickTolerance:m,enable:!0}),this.map=s,d&&(this.mousePitch=lu({clickTolerance:v,enable:!0}),this.touchPitch=(({enable:C,clickTolerance:T,pitchDegreesPerPixelMoved:P=-.5})=>{const R=new Ie;return new su({clickTolerance:T,move:(B,U)=>({pitchDelta:(U.y-B.y)*P}),moveStateManager:R,enable:C,assignEvents:_h})})({clickTolerance:v,enable:!0})),M.addEventListener(f,"mousedown",this.mousedown),M.addEventListener(f,"touchstart",this.touchstart,{passive:!1}),M.addEventListener(f,"touchcancel",this.reset)}startMouse(s,f){this.mouseRotate.dragStart(s,f),this.mousePitch&&this.mousePitch.dragStart(s,f),M.disableDrag()}startTouch(s,f){this.touchRotate.dragStart(s,f),this.touchPitch&&this.touchPitch.dragStart(s,f),M.disableDrag()}moveMouse(s,f){const d=this.map,{bearingDelta:m}=this.mouseRotate.dragMove(s,f)||{};if(m&&d.setBearing(d.getBearing()+m),this.mousePitch){const{pitchDelta:v}=this.mousePitch.dragMove(s,f)||{};v&&d.setPitch(d.getPitch()+v)}}moveTouch(s,f){const d=this.map,{bearingDelta:m}=this.touchRotate.dragMove(s,f)||{};if(m&&d.setBearing(d.getBearing()+m),this.touchPitch){const{pitchDelta:v}=this.touchPitch.dragMove(s,f)||{};v&&d.setPitch(d.getPitch()+v)}}off(){const s=this.element;M.removeEventListener(s,"mousedown",this.mousedown),M.removeEventListener(s,"touchstart",this.touchstart,{passive:!1}),M.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),M.removeEventListener(window,"touchend",this.touchend),M.removeEventListener(s,"touchcancel",this.reset),this.offTemp()}offTemp(){M.enableDrag(),M.removeEventListener(window,"mousemove",this.mousemove),M.removeEventListener(window,"mouseup",this.mouseup),M.removeEventListener(window,"touchmove",this.touchmove,{passive:!1}),M.removeEventListener(window,"touchend",this.touchend)}}let wa;function yh(y,s,f){const d=new u.M(y.lng,y.lat);if(y=new u.M(y.lng,y.lat),s){const m=new u.M(y.lng-360,y.lat),v=new u.M(y.lng+360,y.lat),C=f.locationPoint(y).distSqr(s);f.locationPoint(m).distSqr(s)180;){const m=f.locationPoint(y);if(m.x>=0&&m.y>=0&&m.x<=f.width&&m.y<=f.height)break;y.lng>f.center.lng?y.lng-=360:y.lng+=360}return y.lng!==d.lng&&f.locationPoint(y).y>f.height/2-f.getHorizon()?y:d}const cc={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 vh(y,s,f){const d=y.classList;for(const m in cc)d.remove(`maplibregl-${f}-anchor-${m}`);d.add(`maplibregl-${f}-anchor-${s}`)}class hc extends u.E{constructor(s){if(super(),this._onKeyPress=f=>{const d=f.code,m=f.charCode||f.keyCode;d!=="Space"&&d!=="Enter"&&m!==32&&m!==13||this.togglePopup()},this._onMapClick=f=>{const d=f.originalEvent.target,m=this._element;this._popup&&(d===m||m.contains(d))&&this.togglePopup()},this._update=f=>{var d;if(!this._map)return;const m=this._map.loaded()&&!this._map.isMoving();((f==null?void 0:f.type)==="terrain"||(f==null?void 0:f.type)==="render"&&!m)&&this._map.once("render",this._update),this._lngLat=this._map.transform.renderWorldCopies?yh(this._lngLat,this._flatPos,this._map.transform):(d=this._lngLat)===null||d===void 0?void 0:d.wrap(),this._flatPos=this._pos=this._map.project(this._lngLat)._add(this._offset),this._map.terrain&&(this._flatPos=this._map.transform.locationPoint(this._lngLat)._add(this._offset));let v="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?v=`rotateZ(${this._rotation}deg)`:this._rotationAlignment==="map"&&(v=`rotateZ(${this._rotation-this._map.getBearing()}deg)`);let C="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?C="rotateX(0deg)":this._pitchAlignment==="map"&&(C=`rotateX(${this._map.getPitch()}deg)`),f&&f.type!=="moveend"||(this._pos=this._pos.round()),M.setTransform(this._element,`${cc[this._anchor]} translate(${this._pos.x}px, ${this._pos.y}px) ${C} ${v}`),E.frameAsync(new AbortController).then(()=>{this._updateOpacity(f&&f.type==="moveend")}).catch(()=>{})},this._onMove=f=>{if(!this._isDragging){const d=this._clickTolerance||this._map._clickTolerance;this._isDragging=f.point.dist(this._pointerdownPos)>=d}this._isDragging&&(this._pos=f.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 u.k("dragstart"))),this.fire(new u.k("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 u.k("dragend")),this._state="inactive"},this._addDragHandler=f=>{this._element.contains(f.originalEvent.target)&&(f.preventDefault(),this._positionDelta=f.point.sub(this._pos).add(this._offset),this._pointerdownPos=f.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=s&&s.anchor||"center",this._color=s&&s.color||"#3FB1CE",this._scale=s&&s.scale||1,this._draggable=s&&s.draggable||!1,this._clickTolerance=s&&s.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=s&&s.rotation||0,this._rotationAlignment=s&&s.rotationAlignment||"auto",this._pitchAlignment=s&&s.pitchAlignment&&s.pitchAlignment!=="auto"?s.pitchAlignment:this._rotationAlignment,this.setOpacity(),this.setOpacity(s==null?void 0:s.opacity,s==null?void 0:s.opacityWhenCovered),s&&s.element)this._element=s.element,this._offset=u.P.convert(s&&s.offset||[0,0]);else{this._defaultMarker=!0,this._element=M.create("div"),this._element.setAttribute("aria-label","Map marker");const f=M.createNS("http://www.w3.org/2000/svg","svg"),d=41,m=27;f.setAttributeNS(null,"display","block"),f.setAttributeNS(null,"height",`${d}px`),f.setAttributeNS(null,"width",`${m}px`),f.setAttributeNS(null,"viewBox",`0 0 ${m} ${d}`);const v=M.createNS("http://www.w3.org/2000/svg","g");v.setAttributeNS(null,"stroke","none"),v.setAttributeNS(null,"stroke-width","1"),v.setAttributeNS(null,"fill","none"),v.setAttributeNS(null,"fill-rule","evenodd");const C=M.createNS("http://www.w3.org/2000/svg","g");C.setAttributeNS(null,"fill-rule","nonzero");const T=M.createNS("http://www.w3.org/2000/svg","g");T.setAttributeNS(null,"transform","translate(3.0, 29.0)"),T.setAttributeNS(null,"fill","#000000");const P=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];for(const wt of P){const zt=M.createNS("http://www.w3.org/2000/svg","ellipse");zt.setAttributeNS(null,"opacity","0.04"),zt.setAttributeNS(null,"cx","10.5"),zt.setAttributeNS(null,"cy","5.80029008"),zt.setAttributeNS(null,"rx",wt.rx),zt.setAttributeNS(null,"ry",wt.ry),T.appendChild(zt)}const R=M.createNS("http://www.w3.org/2000/svg","g");R.setAttributeNS(null,"fill",this._color);const B=M.createNS("http://www.w3.org/2000/svg","path");B.setAttributeNS(null,"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"),R.appendChild(B);const U=M.createNS("http://www.w3.org/2000/svg","g");U.setAttributeNS(null,"opacity","0.25"),U.setAttributeNS(null,"fill","#000000");const X=M.createNS("http://www.w3.org/2000/svg","path");X.setAttributeNS(null,"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"),U.appendChild(X);const rt=M.createNS("http://www.w3.org/2000/svg","g");rt.setAttributeNS(null,"transform","translate(6.0, 7.0)"),rt.setAttributeNS(null,"fill","#FFFFFF");const it=M.createNS("http://www.w3.org/2000/svg","g");it.setAttributeNS(null,"transform","translate(8.0, 8.0)");const ct=M.createNS("http://www.w3.org/2000/svg","circle");ct.setAttributeNS(null,"fill","#000000"),ct.setAttributeNS(null,"opacity","0.25"),ct.setAttributeNS(null,"cx","5.5"),ct.setAttributeNS(null,"cy","5.5"),ct.setAttributeNS(null,"r","5.4999962");const tt=M.createNS("http://www.w3.org/2000/svg","circle");tt.setAttributeNS(null,"fill","#FFFFFF"),tt.setAttributeNS(null,"cx","5.5"),tt.setAttributeNS(null,"cy","5.5"),tt.setAttributeNS(null,"r","5.4999962"),it.appendChild(ct),it.appendChild(tt),C.appendChild(T),C.appendChild(R),C.appendChild(U),C.appendChild(rt),C.appendChild(it),f.appendChild(C),f.setAttributeNS(null,"height",d*this._scale+"px"),f.setAttributeNS(null,"width",m*this._scale+"px"),this._element.appendChild(f),this._offset=u.P.convert(s&&s.offset||[0,-14])}if(this._element.classList.add("maplibregl-marker"),this._element.addEventListener("dragstart",f=>{f.preventDefault()}),this._element.addEventListener("mousedown",f=>{f.preventDefault()}),vh(this._element,this._anchor,"marker"),s&&s.className)for(const f of s.className.split(" "))this._element.classList.add(f);this._popup=null}addTo(s){return this.remove(),this._map=s,s.getCanvasContainer().appendChild(this._element),s.on("move",this._update),s.on("moveend",this._update),s.on("terrain",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this}remove(){return this._opacityTimeout&&(clearTimeout(this._opacityTimeout),delete this._opacityTimeout),this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",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),M.remove(this._element),this._popup&&this._popup.remove(),this}getLngLat(){return this._lngLat}setLngLat(s){return this._lngLat=u.M.convert(s),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this}getElement(){return this._element}setPopup(s){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),s){if(!("offset"in s.options)){const m=Math.abs(13.5)/Math.SQRT2;s.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[0,-38.1],"bottom-left":[m,-1*(38.1-13.5+m)],"bottom-right":[-m,-1*(38.1-13.5+m)],left:[13.5,-1*(38.1-13.5)],right:[-13.5,-1*(38.1-13.5)]}:this._offset}this._popup=s,this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this}getPopup(){return this._popup}togglePopup(){const s=this._popup;return this._element.style.opacity===this._opacityWhenCovered?this:s?(s.isOpen()?s.remove():(s.setLngLat(this._lngLat),s.addTo(this._map)),this):this}_updateOpacity(s=!1){var f,d;if(!(!((f=this._map)===null||f===void 0)&&f.terrain))return void(this._element.style.opacity!==this._opacity&&(this._element.style.opacity=this._opacity));if(s)this._opacityTimeout=null;else{if(this._opacityTimeout)return;this._opacityTimeout=setTimeout(()=>{this._opacityTimeout=null},100)}const m=this._map,v=m.terrain.depthAtPoint(this._pos),C=m.terrain.getElevationForLngLatZoom(this._lngLat,m.transform.tileZoom);if(m.transform.lngLatToCameraDepth(this._lngLat,C)-v<.006)return void(this._element.style.opacity=this._opacity);const T=-this._offset.y/m.transform._pixelPerMeter,P=Math.sin(m.getPitch()*Math.PI/180)*T,R=m.terrain.depthAtPoint(new u.P(this._pos.x,this._pos.y-this._offset.y)),B=m.transform.lngLatToCameraDepth(this._lngLat,C+P)-R>.006;!((d=this._popup)===null||d===void 0)&&d.isOpen()&&B&&this._popup.remove(),this._element.style.opacity=B?this._opacityWhenCovered:this._opacity}getOffset(){return this._offset}setOffset(s){return this._offset=u.P.convert(s),this._update(),this}addClassName(s){this._element.classList.add(s)}removeClassName(s){this._element.classList.remove(s)}toggleClassName(s){return this._element.classList.toggle(s)}setDraggable(s){return this._draggable=!!s,this._map&&(s?(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}isDraggable(){return this._draggable}setRotation(s){return this._rotation=s||0,this._update(),this}getRotation(){return this._rotation}setRotationAlignment(s){return this._rotationAlignment=s||"auto",this._update(),this}getRotationAlignment(){return this._rotationAlignment}setPitchAlignment(s){return this._pitchAlignment=s&&s!=="auto"?s:this._rotationAlignment,this._update(),this}getPitchAlignment(){return this._pitchAlignment}setOpacity(s,f){return s===void 0&&f===void 0&&(this._opacity="1",this._opacityWhenCovered="0.2"),s!==void 0&&(this._opacity=s),f!==void 0&&(this._opacityWhenCovered=f),this._map&&this._updateOpacity(!0),this}}const bh={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0};let cu=0,Cl=!1;const xh={maxWidth:100,unit:"metric"};function wh(y,s,f){const d=f&&f.maxWidth||100,m=y._container.clientHeight/2,v=y.unproject([0,m]),C=y.unproject([d,m]),T=v.distanceTo(C);if(f&&f.unit==="imperial"){const P=3.2808*T;P>5280?Tl(s,d,P/5280,y._getUIString("ScaleControl.Miles")):Tl(s,d,P,y._getUIString("ScaleControl.Feet"))}else f&&f.unit==="nautical"?Tl(s,d,T/1852,y._getUIString("ScaleControl.NauticalMiles")):T>=1e3?Tl(s,d,T/1e3,y._getUIString("ScaleControl.Kilometers")):Tl(s,d,T,y._getUIString("ScaleControl.Meters"))}function Tl(y,s,f,d){const m=function(v){const C=Math.pow(10,`${Math.floor(v)}`.length-1);let T=v/C;return T=T>=10?10:T>=5?5:T>=3?3:T>=2?2:T>=1?1:function(P){const R=Math.pow(10,Math.ceil(-Math.log(P)/Math.LN10));return Math.round(P*R)/R}(T),C*T}(f);y.style.width=s*(m/f)+"px",y.innerHTML=`${m} ${d}`}const np={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px",subpixelPositioning:!1},ip=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", ");function Sh(y){if(y){if(typeof y=="number"){const s=Math.round(Math.abs(y)/Math.SQRT2);return{center:new u.P(0,0),top:new u.P(0,y),"top-left":new u.P(s,s),"top-right":new u.P(-s,s),bottom:new u.P(0,-y),"bottom-left":new u.P(s,-s),"bottom-right":new u.P(-s,-s),left:new u.P(y,0),right:new u.P(-y,0)}}if(y instanceof u.P||Array.isArray(y)){const s=u.P.convert(y);return{center:s,top:s,"top-left":s,"top-right":s,bottom:s,"bottom-left":s,"bottom-right":s,left:s,right:s}}return{center:u.P.convert(y.center||[0,0]),top:u.P.convert(y.top||[0,0]),"top-left":u.P.convert(y["top-left"]||[0,0]),"top-right":u.P.convert(y["top-right"]||[0,0]),bottom:u.P.convert(y.bottom||[0,0]),"bottom-left":u.P.convert(y["bottom-left"]||[0,0]),"bottom-right":u.P.convert(y["bottom-right"]||[0,0]),left:u.P.convert(y.left||[0,0]),right:u.P.convert(y.right||[0,0])}}return Sh(new u.P(0,0))}const am=_;h.AJAXError=u.be,h.Evented=u.E,h.LngLat=u.M,h.MercatorCoordinate=u.Y,h.Point=u.P,h.addProtocol=u.bf,h.config=u.a,h.removeProtocol=u.bg,h.AttributionControl=Is,h.BoxZoomHandler=ws,h.CanvasSource=vs,h.CooperativeGesturesHandler=De,h.DoubleClickZoomHandler=Xf,h.DragPanHandler=rm,h.DragRotateHandler=Ss,h.EdgeInsets=ru,h.FullscreenControl=class extends u.E{constructor(y={}){super(),this._onFullscreenChange=()=>{var s;let f=window.document.fullscreenElement||window.document.mozFullScreenElement||window.document.webkitFullscreenElement||window.document.msFullscreenElement;for(;!((s=f==null?void 0:f.shadowRoot)===null||s===void 0)&&s.fullscreenElement;)f=f.shadowRoot.fullscreenElement;f===this._container!==this._fullscreen&&this._handleFullscreenChange()},this._onClickFullscreen=()=>{this._isFullscreen()?this._exitFullscreen():this._requestFullscreen()},this._fullscreen=!1,y&&y.container&&(y.container instanceof HTMLElement?this._container=y.container:u.w("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(y){return this._map=y,this._container||(this._container=this._map.getContainer()),this._controlContainer=M.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._setupUI(),this._controlContainer}onRemove(){M.remove(this._controlContainer),this._map=null,window.document.removeEventListener(this._fullscreenchange,this._onFullscreenChange)}_setupUI(){const y=this._fullscreenButton=M.create("button","maplibregl-ctrl-fullscreen",this._controlContainer);M.create("span","maplibregl-ctrl-icon",y).setAttribute("aria-hidden","true"),y.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),window.document.addEventListener(this._fullscreenchange,this._onFullscreenChange)}_updateTitle(){const y=this._getTitle();this._fullscreenButton.setAttribute("aria-label",y),this._fullscreenButton.title=y}_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 u.k("fullscreenstart")),this._prevCooperativeGesturesEnabled=this._map.cooperativeGestures.isEnabled(),this._map.cooperativeGestures.disable()):(this.fire(new u.k("fullscreenend")),this._prevCooperativeGesturesEnabled&&this._map.cooperativeGestures.enable())}_exitFullscreen(){window.document.exitFullscreen?window.document.exitFullscreen():window.document.mozCancelFullScreen?window.document.mozCancelFullScreen():window.document.msExitFullscreen?window.document.msExitFullscreen():window.document.webkitCancelFullScreen?window.document.webkitCancelFullScreen():this._togglePseudoFullScreen()}_requestFullscreen(){this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen?this._container.webkitRequestFullscreen():this._togglePseudoFullScreen()}_togglePseudoFullScreen(){this._container.classList.toggle("maplibregl-pseudo-fullscreen"),this._handleFullscreenChange(),this._map.resize()}},h.GeoJSONSource=cr,h.GeolocateControl=class extends u.E{constructor(y){super(),this._onSuccess=s=>{if(this._map){if(this._isOutOfMapMaxBounds(s))return this._setErrorState(),this.fire(new u.k("outofmaxbounds",s)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=s,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 new Error(`Unexpected watchState ${this._watchState}`)}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(s),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(s),this.options.showUserLocation&&this._dotElement.classList.remove("maplibregl-user-location-dot-stale"),this.fire(new u.k("geolocate",s)),this._finish()}},this._updateCamera=s=>{const f=new u.M(s.coords.longitude,s.coords.latitude),d=s.coords.accuracy,m=this._map.getBearing(),v=u.e({bearing:m},this.options.fitBoundsOptions),C=Nt.fromLngLat(f,d);this._map.fitBounds(C,v,{geolocateSource:!0})},this._updateMarker=s=>{if(s){const f=new u.M(s.coords.longitude,s.coords.latitude);this._accuracyCircleMarker.setLngLat(f).addTo(this._map),this._userLocationDotMarker.setLngLat(f).addTo(this._map),this._accuracy=s.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},this._onZoom=()=>{this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},this._onError=s=>{if(this._map){if(this.options.trackUserLocation)if(s.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;const f=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=f,this._geolocateButton.setAttribute("aria-label",f),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(s.code===3&&Cl)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("maplibregl-user-location-dot-stale"),this.fire(new u.k("error",s)),this._finish()}},this._finish=()=>{this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},this._setupUI=s=>{if(this._map){if(this._container.addEventListener("contextmenu",f=>f.preventDefault()),this._geolocateButton=M.create("button","maplibregl-ctrl-geolocate",this._container),M.create("span","maplibregl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden","true"),this._geolocateButton.type="button",s===!1){u.w("Geolocation support is not available so the GeolocateControl will be disabled.");const f=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=f,this._geolocateButton.setAttribute("aria-label",f)}else{const f=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=f,this._geolocateButton.setAttribute("aria-label",f)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","false"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=M.create("div","maplibregl-user-location-dot"),this._userLocationDotMarker=new hc({element:this._dotElement}),this._circleElement=M.create("div","maplibregl-user-location-accuracy-circle"),this._accuracyCircleMarker=new hc({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",()=>this.trigger()),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",f=>{f.geolocateSource||this._watchState!=="ACTIVE_LOCK"||f.originalEvent&&f.originalEvent.type==="resize"||(this._watchState="BACKGROUND",this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("maplibregl-ctrl-geolocate-active"),this.fire(new u.k("trackuserlocationend")))})}},this.options=u.e({},bh,y)}onAdd(y){return this._map=y,this._container=M.create("div","maplibregl-ctrl maplibregl-ctrl-group"),function(){return u._(this,arguments,void 0,function*(s=!1){if(wa!==void 0&&!s)return wa;if(window.navigator.permissions===void 0)return wa=!!window.navigator.geolocation,wa;try{wa=(yield window.navigator.permissions.query({name:"geolocation"})).state!=="denied"}catch{wa=!!window.navigator.geolocation}return wa})}().then(s=>this._setupUI(s)),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(),M.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,cu=0,Cl=!1}_isOutOfMapMaxBounds(y){const s=this._map.getMaxBounds(),f=y.coords;return s&&(f.longitudes.getEast()||f.latitudes.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":break;default:throw new Error(`Unexpected watchState ${this._watchState}`)}}_updateCircleRadius(){const y=this._map.getBounds(),s=y.getSouthEast(),f=y.getNorthEast(),d=s.distanceTo(f),m=Math.ceil(this._accuracy/(d/this._map._container.clientHeight)*2);this._circleElement.style.width=`${m}px`,this._circleElement.style.height=`${m}px`}trigger(){if(!this._setup)return u.w("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 u.k("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":cu--,Cl=!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 u.k("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 u.k("trackuserlocationstart"));break;default:throw new 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 new Error(`Unexpected watchState ${this._watchState}`)}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){let y;this._geolocateButton.classList.add("maplibregl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),cu++,cu>1?(y={maximumAge:6e5,timeout:0},Cl=!0):(y=this.options.positionOptions,Cl=!1),this._geolocationWatchID=window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,y)}}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)}},h.Hash=qf,h.ImageSource=si,h.KeyboardHandler=$a,h.LngLatBounds=Nt,h.LogoControl=om,h.Map=class extends vo{constructor(y){if(u.bc.mark(u.bd.create),(y=u.e({},uc,y)).minZoom!=null&&y.maxZoom!=null&&y.minZoom>y.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(y.minPitch!=null&&y.maxPitch!=null&&y.minPitch>y.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(y.minPitch!=null&&y.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(y.maxPitch!=null&&y.maxPitch>85)throw new Error("maxPitch must be less than or equal to 85");if(super(new hh(y.minZoom,y.maxZoom,y.minPitch,y.maxPitch,y.renderWorldCopies),{bearingSnap:y.bearingSnap}),this._contextLost=s=>{s.preventDefault(),this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this.fire(new u.k("webglcontextlost",{originalEvent:s}))},this._contextRestored=s=>{this._setupPainter(),this.resize(),this._update(),this.fire(new u.k("webglcontextrestored",{originalEvent:s}))},this._onMapScroll=s=>{if(s.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},this._onWindowOnline=()=>{this._update()},this._interactive=y.interactive,this._maxTileCacheSize=y.maxTileCacheSize,this._maxTileCacheZoomLevels=y.maxTileCacheZoomLevels,this._failIfMajorPerformanceCaveat=y.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=y.preserveDrawingBuffer,this._antialias=y.antialias,this._trackResize=y.trackResize,this._bearingSnap=y.bearingSnap,this._refreshExpiredTiles=y.refreshExpiredTiles,this._fadeDuration=y.fadeDuration,this._crossSourceCollisions=y.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=y.collectResourceTiming,this._renderTaskQueue=new ac,this._controls=[],this._mapId=u.a3(),this._locale=u.e({},Jf,y.locale),this._clickTolerance=y.clickTolerance,this._overridePixelRatio=y.pixelRatio,this._maxCanvasSize=y.maxCanvasSize,this.transformCameraUpdate=y.transformCameraUpdate,this._imageQueueHandle=Z.addThrottleControl(()=>this.isMoving()),this._requestManager=new $(y.transformRequest),typeof y.container=="string"){if(this._container=document.getElementById(y.container),!this._container)throw new Error(`Container '${y.container}' not found.`)}else{if(!(y.container instanceof HTMLElement))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=y.container}if(y.maxBounds&&this.setMaxBounds(y.maxBounds),this._setupContainer(),this._setupPainter(),this.on("move",()=>this._update(!1)),this.on("moveend",()=>this._update(!1)),this.on("zoom",()=>this._update(!0)),this.on("terrain",()=>{this.painter.terrainFacilitator.dirty=!0,this._update(!0)}),this.once("idle",()=>{this._idleTriggered=!0}),typeof window<"u"){addEventListener("online",this._onWindowOnline,!1);let s=!1;const f=jf(d=>{this._trackResize&&!this._removed&&this.resize(d)._update()},50);this._resizeObserver=new ResizeObserver(d=>{s?f(d):s=!0}),this._resizeObserver.observe(this._container)}this.handlers=new $f(this,y),this._hash=y.hash&&new qf(typeof y.hash=="string"&&y.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:y.center,zoom:y.zoom,bearing:y.bearing,pitch:y.pitch}),y.bounds&&(this.resize(),this.fitBounds(y.bounds,u.e({},y.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=y.localIdeographFontFamily,this._validateStyle=y.validateStyle,y.style&&this.setStyle(y.style,{localIdeographFontFamily:y.localIdeographFontFamily}),y.attributionControl&&this.addControl(new Is(typeof y.attributionControl=="boolean"?void 0:y.attributionControl)),y.maplibreLogo&&this.addControl(new om,y.logoPosition),this.on("style.load",()=>{this.transform.unmodified&&this.jumpTo(this.style.stylesheet)}),this.on("data",s=>{this._update(s.dataType==="style"),this.fire(new u.k(`${s.dataType}data`,s))}),this.on("dataloading",s=>{this.fire(new u.k(`${s.dataType}dataloading`,s))}),this.on("dataabort",s=>{this.fire(new u.k("sourcedataabort",s))})}_getMapId(){return this._mapId}addControl(y,s){if(s===void 0&&(s=y.getDefaultPosition?y.getDefaultPosition():"top-right"),!y||!y.onAdd)return this.fire(new u.j(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));const f=y.onAdd(this);this._controls.push(y);const d=this._controlPositions[s];return s.indexOf("bottom")!==-1?d.insertBefore(f,d.firstChild):d.appendChild(f),this}removeControl(y){if(!y||!y.onRemove)return this.fire(new u.j(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));const s=this._controls.indexOf(y);return s>-1&&this._controls.splice(s,1),y.onRemove(this),this}hasControl(y){return this._controls.indexOf(y)>-1}calculateCameraOptionsFromTo(y,s,f,d){return d==null&&this.terrain&&(d=this.terrain.getElevationForLngLatZoom(f,this.transform.tileZoom)),super.calculateCameraOptionsFromTo(y,s,f,d)}resize(y){var s;const f=this._containerDimensions(),d=f[0],m=f[1],v=this._getClampedPixelRatio(d,m);if(this._resizeCanvas(d,m,v),this.painter.resize(d,m,v),this.painter.overLimit()){const T=this.painter.context.gl;this._maxCanvasSize=[T.drawingBufferWidth,T.drawingBufferHeight];const P=this._getClampedPixelRatio(d,m);this._resizeCanvas(d,m,P),this.painter.resize(d,m,P)}this.transform.resize(d,m),(s=this._requestedCameraState)===null||s===void 0||s.resize(d,m);const C=!this._moving;return C&&(this.stop(),this.fire(new u.k("movestart",y)).fire(new u.k("move",y))),this.fire(new u.k("resize",y)),C&&this.fire(new u.k("moveend",y)),this}_getClampedPixelRatio(y,s){const{0:f,1:d}=this._maxCanvasSize,m=this.getPixelRatio(),v=y*m,C=s*m;return Math.min(v>f?f/v:1,C>d?d/C:1)*m}getPixelRatio(){var y;return(y=this._overridePixelRatio)!==null&&y!==void 0?y:devicePixelRatio}setPixelRatio(y){this._overridePixelRatio=y,this.resize()}getBounds(){return this.transform.getBounds()}getMaxBounds(){return this.transform.getMaxBounds()}setMaxBounds(y){return this.transform.setMaxBounds(Nt.convert(y)),this._update()}setMinZoom(y){if((y=y??-2)>=-2&&y<=this.transform.maxZoom)return this.transform.minZoom=y,this._update(),this.getZoom()=this.transform.minZoom)return this.transform.maxZoom=y,this._update(),this.getZoom()>y&&this.setZoom(y),this;throw new Error("maxZoom must be greater than the current minZoom")}getMaxZoom(){return this.transform.maxZoom}setMinPitch(y){if((y=y??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(y>=0&&y<=this.transform.maxPitch)return this.transform.minPitch=y,this._update(),this.getPitch()85)throw new Error("maxPitch must be less than or equal to 85");if(y>=this.transform.minPitch)return this.transform.maxPitch=y,this._update(),this.getPitch()>y&&this.setPitch(y),this;throw new Error("maxPitch must be greater than the current minPitch")}getMaxPitch(){return this.transform.maxPitch}getRenderWorldCopies(){return this.transform.renderWorldCopies}setRenderWorldCopies(y){return this.transform.renderWorldCopies=y,this._update()}project(y){return this.transform.locationPoint(u.M.convert(y),this.style&&this.terrain)}unproject(y){return this.transform.pointLocation(u.P.convert(y),this.terrain)}isMoving(){var y;return this._moving||((y=this.handlers)===null||y===void 0?void 0:y.isMoving())}isZooming(){var y;return this._zooming||((y=this.handlers)===null||y===void 0?void 0:y.isZooming())}isRotating(){var y;return this._rotating||((y=this.handlers)===null||y===void 0?void 0:y.isRotating())}_createDelegatedListener(y,s,f){if(y==="mouseenter"||y==="mouseover"){let d=!1;return{layer:s,listener:f,delegates:{mousemove:v=>{const C=this.getLayer(s)?this.queryRenderedFeatures(v.point,{layers:[s]}):[];C.length?d||(d=!0,f.call(this,new yo(y,this,v.originalEvent,{features:C}))):d=!1},mouseout:()=>{d=!1}}}}if(y==="mouseleave"||y==="mouseout"){let d=!1;return{layer:s,listener:f,delegates:{mousemove:C=>{(this.getLayer(s)?this.queryRenderedFeatures(C.point,{layers:[s]}):[]).length?d=!0:d&&(d=!1,f.call(this,new yo(y,this,C.originalEvent)))},mouseout:C=>{d&&(d=!1,f.call(this,new yo(y,this,C.originalEvent)))}}}}{const d=m=>{const v=this.getLayer(s)?this.queryRenderedFeatures(m.point,{layers:[s]}):[];v.length&&(m.features=v,f.call(this,m),delete m.features)};return{layer:s,listener:f,delegates:{[y]:d}}}}on(y,s,f){if(f===void 0)return super.on(y,s);const d=this._createDelegatedListener(y,s,f);this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[y]=this._delegatedListeners[y]||[],this._delegatedListeners[y].push(d);for(const m in d.delegates)this.on(m,d.delegates[m]);return this}once(y,s,f){if(f===void 0)return super.once(y,s);const d=this._createDelegatedListener(y,s,f);for(const m in d.delegates)this.once(m,d.delegates[m]);return this}off(y,s,f){return f===void 0?super.off(y,s):(this._delegatedListeners&&this._delegatedListeners[y]&&(d=>{const m=this._delegatedListeners[y];for(let v=0;vthis._updateStyle(y,s));const f=this.style&&s.transformStyle?this.style.serialize():void 0;return this.style&&(this.style.setEventedParent(null),this.style._remove(!y)),y?(this.style=new No(this,s||{}),this.style.setEventedParent(this,{style:this.style}),typeof y=="string"?this.style.loadURL(y,s,f):this.style.loadJSON(y,s,f),this):(delete this.style,this)}_lazyInitEmptyStyle(){this.style||(this.style=new No(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())}_diffStyle(y,s){if(typeof y=="string"){const f=this._requestManager.transformRequest(y,"Style");u.h(f,new AbortController).then(d=>{this._updateDiff(d.data,s)}).catch(d=>{d&&this.fire(new u.j(d))})}else typeof y=="object"&&this._updateDiff(y,s)}_updateDiff(y,s){try{this.style.setState(y,s)&&this._update(!0)}catch(f){u.w(`Unable to perform style diff: ${f.message||f.error||f}. Rebuilding the style from scratch.`),this._updateStyle(y,s)}}getStyle(){if(this.style)return this.style.serialize()}isStyleLoaded(){return this.style?this.style.loaded():u.w("There is no style added to the map.")}addSource(y,s){return this._lazyInitEmptyStyle(),this.style.addSource(y,s),this._update(!0)}isSourceLoaded(y){const s=this.style&&this.style.sourceCaches[y];if(s!==void 0)return s.loaded();this.fire(new u.j(new Error(`There is no source with ID '${y}'`)))}setTerrain(y){if(this.style._checkLoaded(),this._terrainDataCallback&&this.style.off("data",this._terrainDataCallback),y){const s=this.style.sourceCaches[y.source];if(!s)throw new Error(`cannot load terrain, because there exists no source with ID: ${y.source}`);this.terrain===null&&s.reload();for(const f in this.style._layers){const d=this.style._layers[f];d.type==="hillshade"&&d.source===y.source&&u.w("You are using the same source for a hillshade layer and for 3D terrain. Please consider using two separate sources to improve rendering quality.")}this.terrain=new sm(this.painter,s,y),this.painter.renderToTexture=new Kf(this.painter,this.terrain),this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._terrainDataCallback=f=>{f.dataType==="style"?this.terrain.sourceCache.freeRtt():f.dataType==="source"&&f.tile&&(f.sourceId!==y.source||this._elevationFreeze||(this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom)),this.terrain.sourceCache.freeRtt(f.tile.tileID))},this.style.on("data",this._terrainDataCallback)}else this.terrain&&this.terrain.sourceCache.destruct(),this.terrain=null,this.painter.renderToTexture&&this.painter.renderToTexture.destruct(),this.painter.renderToTexture=null,this.transform.minElevationForCurrentTile=0,this.transform.elevation=0;return this.fire(new u.k("terrain",{terrain:y})),this}getTerrain(){var y,s;return(s=(y=this.terrain)===null||y===void 0?void 0:y.options)!==null&&s!==void 0?s:null}areTilesLoaded(){const y=this.style&&this.style.sourceCaches;for(const s in y){const f=y[s]._tiles;for(const d in f){const m=f[d];if(m.state!=="loaded"&&m.state!=="errored")return!1}}return!0}removeSource(y){return this.style.removeSource(y),this._update(!0)}getSource(y){return this.style.getSource(y)}addImage(y,s,f={}){const{pixelRatio:d=1,sdf:m=!1,stretchX:v,stretchY:C,content:T}=f;if(this._lazyInitEmptyStyle(),!(s instanceof HTMLImageElement||u.b(s))){if(s.width===void 0||s.height===void 0)return this.fire(new u.j(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));{const{width:P,height:R,data:B}=s,U=s;return this.style.addImage(y,{data:new u.R({width:P,height:R},new Uint8Array(B)),pixelRatio:d,stretchX:v,stretchY:C,content:T,sdf:m,version:0,userImage:U}),U.onAdd&&U.onAdd(this,y),this}}{const{width:P,height:R,data:B}=E.getImageData(s);this.style.addImage(y,{data:new u.R({width:P,height:R},B),pixelRatio:d,stretchX:v,stretchY:C,content:T,sdf:m,version:0})}}updateImage(y,s){const f=this.style.getImage(y);if(!f)return this.fire(new u.j(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));const d=s instanceof HTMLImageElement||u.b(s)?E.getImageData(s):s,{width:m,height:v,data:C}=d;if(m===void 0||v===void 0)return this.fire(new u.j(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));if(m!==f.data.width||v!==f.data.height)return this.fire(new u.j(new Error("The width and height of the updated image must be that same as the previous version of the image")));const T=!(s instanceof HTMLImageElement||u.b(s));return f.data.replace(C,T),this.style.updateImage(y,f),this}getImage(y){return this.style.getImage(y)}hasImage(y){return y?!!this.style.getImage(y):(this.fire(new u.j(new Error("Missing required image id"))),!1)}removeImage(y){this.style.removeImage(y)}loadImage(y){return Z.getImage(this._requestManager.transformRequest(y,"Image"),new AbortController)}listImages(){return this.style.listImages()}addLayer(y,s){return this._lazyInitEmptyStyle(),this.style.addLayer(y,s),this._update(!0)}moveLayer(y,s){return this.style.moveLayer(y,s),this._update(!0)}removeLayer(y){return this.style.removeLayer(y),this._update(!0)}getLayer(y){return this.style.getLayer(y)}getLayersOrder(){return this.style.getLayersOrder()}setLayerZoomRange(y,s,f){return this.style.setLayerZoomRange(y,s,f),this._update(!0)}setFilter(y,s,f={}){return this.style.setFilter(y,s,f),this._update(!0)}getFilter(y){return this.style.getFilter(y)}setPaintProperty(y,s,f,d={}){return this.style.setPaintProperty(y,s,f,d),this._update(!0)}getPaintProperty(y,s){return this.style.getPaintProperty(y,s)}setLayoutProperty(y,s,f,d={}){return this.style.setLayoutProperty(y,s,f,d),this._update(!0)}getLayoutProperty(y,s){return this.style.getLayoutProperty(y,s)}setGlyphs(y,s={}){return this._lazyInitEmptyStyle(),this.style.setGlyphs(y,s),this._update(!0)}getGlyphs(){return this.style.getGlyphsUrl()}addSprite(y,s,f={}){return this._lazyInitEmptyStyle(),this.style.addSprite(y,s,f,d=>{d||this._update(!0)}),this}removeSprite(y){return this._lazyInitEmptyStyle(),this.style.removeSprite(y),this._update(!0)}getSprite(){return this.style.getSprite()}setSprite(y,s={}){return this._lazyInitEmptyStyle(),this.style.setSprite(y,s,f=>{f||this._update(!0)}),this}setLight(y,s={}){return this._lazyInitEmptyStyle(),this.style.setLight(y,s),this._update(!0)}getLight(){return this.style.getLight()}setFeatureState(y,s){return this.style.setFeatureState(y,s),this._update()}removeFeatureState(y,s){return this.style.removeFeatureState(y,s),this._update()}getFeatureState(y){return this.style.getFeatureState(y)}getContainer(){return this._container}getCanvasContainer(){return this._canvasContainer}getCanvas(){return this._canvas}_containerDimensions(){let y=0,s=0;return this._container&&(y=this._container.clientWidth||400,s=this._container.clientHeight||300),[y,s]}_setupContainer(){const y=this._container;y.classList.add("maplibregl-map");const s=this._canvasContainer=M.create("div","maplibregl-canvas-container",y);this._interactive&&s.classList.add("maplibregl-interactive"),this._canvas=M.create("canvas","maplibregl-canvas",s),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map"),this._canvas.setAttribute("role","region");const f=this._containerDimensions(),d=this._getClampedPixelRatio(f[0],f[1]);this._resizeCanvas(f[0],f[1],d);const m=this._controlContainer=M.create("div","maplibregl-control-container",y),v=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach(C=>{v[C]=M.create("div",`maplibregl-ctrl-${C} `,m)}),this._container.addEventListener("scroll",this._onMapScroll,!1)}_resizeCanvas(y,s,f){this._canvas.width=Math.floor(f*y),this._canvas.height=Math.floor(f*s),this._canvas.style.width=`${y}px`,this._canvas.style.height=`${s}px`}_setupPainter(){const y={alpha:!0,stencil:!0,depth:!0,failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1};let s=null;this._canvas.addEventListener("webglcontextcreationerror",d=>{s={requestedAttributes:y},d&&(s.statusMessage=d.statusMessage,s.type=d.type)},{once:!0});const f=this._canvas.getContext("webgl2",y)||this._canvas.getContext("webgl",y);if(!f){const d="Failed to initialize WebGL";throw s?(s.message=d,new Error(JSON.stringify(s))):new Error(d)}this.painter=new Hd(f,this.transform),A.testSupport(f)}loaded(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()}_update(y){return this.style&&this.style._loaded?(this._styleDirty=this._styleDirty||y,this._sourcesDirty=!0,this.triggerRepaint(),this):this}_requestRenderFrame(y){return this._update(),this._renderTaskQueue.add(y)}_cancelRenderFrame(y){this._renderTaskQueue.remove(y)}_render(y){const s=this._idleTriggered?this._fadeDuration:0;if(this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(y),this._removed)return;let f=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;const m=this.transform.zoom,v=E.now();this.style.zoomHistory.update(m,v);const C=new u.a8(m,{now:v,fadeDuration:s,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),T=C.crossFadingFactor();T===1&&T===this._crossFadingFactor||(f=!0,this._crossFadingFactor=T),this.style.update(C)}this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this.terrain?(this.terrain.sourceCache.update(this.transform,this.terrain),this.transform.minElevationForCurrentTile=this.terrain.getMinTileElevationForLngLatZoom(this.transform.center,this.transform.tileZoom),this._elevationFreeze||(this.transform.elevation=this.terrain.getElevationForLngLatZoom(this.transform.center,this.transform.tileZoom))):(this.transform.minElevationForCurrentTile=0,this.transform.elevation=0),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,s,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:s,showPadding:this.showPadding}),this.fire(new u.k("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,u.bc.mark(u.bd.load),this.fire(new u.k("load"))),this.style&&(this.style.hasTransitions()||f)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles();const d=this._sourcesDirty||this._styleDirty||this._placementDirty;return d||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new u.k("idle")),!this._loaded||this._fullyLoaded||d||(this._fullyLoaded=!0,u.bc.mark(u.bd.fullLoad)),this}redraw(){return this.style&&(this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._render(0)),this}remove(){var y;this._hash&&this._hash.remove();for(const f of this._controls)f.onRemove(this);this._controls=[],this._frameRequest&&(this._frameRequest.abort(),this._frameRequest=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),typeof window<"u"&&removeEventListener("online",this._onWindowOnline,!1),Z.removeThrottleControl(this._imageQueueHandle),(y=this._resizeObserver)===null||y===void 0||y.disconnect();const s=this.painter.context.gl.getExtension("WEBGL_lose_context");s&&s.loseContext(),this._canvas.removeEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.removeEventListener("webglcontextlost",this._contextLost,!1),M.remove(this._canvasContainer),M.remove(this._controlContainer),this._container.classList.remove("maplibregl-map"),u.bc.clearMetrics(),this._removed=!0,this.fire(new u.k("remove"))}triggerRepaint(){this.style&&!this._frameRequest&&(this._frameRequest=new AbortController,E.frameAsync(this._frameRequest).then(y=>{u.bc.frame(y),this._frameRequest=null,this._render(y)}).catch(()=>{}))}get showTileBoundaries(){return!!this._showTileBoundaries}set showTileBoundaries(y){this._showTileBoundaries!==y&&(this._showTileBoundaries=y,this._update())}get showPadding(){return!!this._showPadding}set showPadding(y){this._showPadding!==y&&(this._showPadding=y,this._update())}get showCollisionBoxes(){return!!this._showCollisionBoxes}set showCollisionBoxes(y){this._showCollisionBoxes!==y&&(this._showCollisionBoxes=y,y?this.style._generateCollisionBoxes():this._update())}get showOverdrawInspector(){return!!this._showOverdrawInspector}set showOverdrawInspector(y){this._showOverdrawInspector!==y&&(this._showOverdrawInspector=y,this._update())}get repaint(){return!!this._repaint}set repaint(y){this._repaint!==y&&(this._repaint=y,this.triggerRepaint())}get vertices(){return!!this._vertices}set vertices(y){this._vertices=y,this._update()}get version(){return Qf}getCameraTargetElevation(){return this.transform.elevation}},h.MapMouseEvent=yo,h.MapTouchEvent=Zs,h.MapWheelEvent=Zf,h.Marker=hc,h.NavigationControl=class{constructor(y){this._updateZoomButtons=()=>{const s=this._map.getZoom(),f=s===this._map.getMaxZoom(),d=s===this._map.getMinZoom();this._zoomInButton.disabled=f,this._zoomOutButton.disabled=d,this._zoomInButton.setAttribute("aria-disabled",f.toString()),this._zoomOutButton.setAttribute("aria-disabled",d.toString())},this._rotateCompassArrow=()=>{const s=this.options.visualizePitch?`scale(${1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)}) rotateX(${this._map.transform.pitch}deg) rotateZ(${this._map.transform.angle*(180/Math.PI)}deg)`:`rotate(${this._map.transform.angle*(180/Math.PI)}deg)`;this._compassIcon.style.transform=s},this._setButtonTitle=(s,f)=>{const d=this._map._getUIString(`NavigationControl.${f}`);s.title=d,s.setAttribute("aria-label",d)},this.options=u.e({},tp,y),this._container=M.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._container.addEventListener("contextmenu",s=>s.preventDefault()),this.options.showZoom&&(this._zoomInButton=this._createButton("maplibregl-ctrl-zoom-in",s=>this._map.zoomIn({},{originalEvent:s})),M.create("span","maplibregl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden","true"),this._zoomOutButton=this._createButton("maplibregl-ctrl-zoom-out",s=>this._map.zoomOut({},{originalEvent:s})),M.create("span","maplibregl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden","true")),this.options.showCompass&&(this._compass=this._createButton("maplibregl-ctrl-compass",s=>{this.options.visualizePitch?this._map.resetNorthPitch({},{originalEvent:s}):this._map.resetNorth({},{originalEvent:s})}),this._compassIcon=M.create("span","maplibregl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden","true"))}onAdd(y){return this._map=y,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new ep(this._map,this._compass,this.options.visualizePitch)),this._container}onRemove(){M.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map}_createButton(y,s){const f=M.create("button",y,this._container);return f.type="button",f.addEventListener("click",s),f}},h.Popup=class extends u.E{constructor(y){super(),this.remove=()=>(this._content&&M.remove(this._content),this._container&&(M.remove(this._container),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("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),this._map._canvasContainer.classList.remove("maplibregl-track-pointer"),delete this._map,this.fire(new u.k("close"))),this),this._onMouseUp=s=>{this._update(s.point)},this._onMouseMove=s=>{this._update(s.point)},this._onDrag=s=>{this._update(s.point)},this._update=s=>{var f;if(!this._map||!this._lngLat&&!this._trackPointer||!this._content)return;if(!this._container){if(this._container=M.create("div","maplibregl-popup",this._map.getContainer()),this._tip=M.create("div","maplibregl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className)for(const T of this.options.className.split(" "))this._container.classList.add(T);this._trackPointer&&this._container.classList.add("maplibregl-popup-track-pointer")}if(this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._lngLat=this._map.transform.renderWorldCopies&&!this._trackPointer?yh(this._lngLat,this._flatPos,this._map.transform):(f=this._lngLat)===null||f===void 0?void 0:f.wrap(),this._trackPointer&&!s)return;const d=this._flatPos=this._pos=this._trackPointer&&s?s:this._map.project(this._lngLat);this._map.terrain&&(this._flatPos=this._trackPointer&&s?s:this._map.transform.locationPoint(this._lngLat));let m=this.options.anchor;const v=Sh(this.options.offset);if(!m){const T=this._container.offsetWidth,P=this._container.offsetHeight;let R;R=d.y+v.bottom.ythis._map.transform.height-P?["bottom"]:[],d.xthis._map.transform.width-T/2&&R.push("right"),m=R.length===0?"bottom":R.join("-")}let C=d.add(v[m]);this.options.subpixelPositioning||(C=C.round()),M.setTransform(this._container,`${cc[m]} translate(${C.x}px,${C.y}px)`),vh(this._container,m,"popup")},this._onClose=()=>{this.remove()},this.options=u.e(Object.create(np),y)}addTo(y){return this._map&&this.remove(),this._map=y,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._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),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 u.k("open")),this}isOpen(){return!!this._map}getLngLat(){return this._lngLat}setLngLat(y){return this._lngLat=u.M.convert(y),this._pos=null,this._flatPos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),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._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("maplibregl-popup-track-pointer"),this._map._canvasContainer.classList.add("maplibregl-track-pointer")),this}getElement(){return this._container}setText(y){return this.setDOMContent(document.createTextNode(y))}setHTML(y){const s=document.createDocumentFragment(),f=document.createElement("body");let d;for(f.innerHTML=y;d=f.firstChild,d;)s.appendChild(d);return this.setDOMContent(s)}getMaxWidth(){var y;return(y=this._container)===null||y===void 0?void 0:y.style.maxWidth}setMaxWidth(y){return this.options.maxWidth=y,this._update(),this}setDOMContent(y){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=M.create("div","maplibregl-popup-content",this._container);return this._content.appendChild(y),this._createCloseButton(),this._update(),this._focusFirstElement(),this}addClassName(y){this._container&&this._container.classList.add(y)}removeClassName(y){this._container&&this._container.classList.remove(y)}setOffset(y){return this.options.offset=y,this._update(),this}toggleClassName(y){if(this._container)return this._container.classList.toggle(y)}setSubpixelPositioning(y){this.options.subpixelPositioning=y}_createCloseButton(){this.options.closeButton&&(this._closeButton=M.create("button","maplibregl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))}_focusFirstElement(){if(!this.options.focusAfterOpen||!this._container)return;const y=this._container.querySelector(ip);y&&y.focus()}},h.RasterDEMTileSource=wn,h.RasterTileSource=Bt,h.ScaleControl=class{constructor(y){this._onMove=()=>{wh(this._map,this._container,this.options)},this.setUnit=s=>{this.options.unit=s,wh(this._map,this._container,this.options)},this.options=Object.assign(Object.assign({},xh),y)}getDefaultPosition(){return"bottom-left"}onAdd(y){return this._map=y,this._container=M.create("div","maplibregl-ctrl maplibregl-ctrl-scale",y.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container}onRemove(){M.remove(this._container),this._map.off("move",this._onMove),this._map=void 0}},h.ScrollZoomHandler=mh,h.Style=No,h.TerrainControl=class{constructor(y){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=y}onAdd(y){return this._map=y,this._container=M.create("div","maplibregl-ctrl maplibregl-ctrl-group"),this._terrainButton=M.create("button","maplibregl-ctrl-terrain",this._container),M.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(){M.remove(this._container),this._map.off("terrain",this._updateTerrainIcon),this._map=void 0}},h.TwoFingersTouchPitchHandler=em,h.TwoFingersTouchRotateHandler=Hf,h.TwoFingersTouchZoomHandler=tm,h.TwoFingersTouchZoomRotateHandler=oc,h.VectorTileSource=bi,h.VideoSource=Do,h.addSourceType=(y,s)=>u._(void 0,void 0,void 0,function*(){if(ja(y))throw new Error(`A source type called "${y}" already exists.`);((f,d)=>{Gs[f]=d})(y,s)}),h.clearPrewarmedResources=function(){const y=Sn;y&&(y.isPreloaded()&&y.numActive()===1?(y.release(Fe),Sn=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()"))},h.getMaxParallelImageRequests=function(){return u.a.MAX_PARALLEL_IMAGE_REQUESTS},h.getRTLTextPluginStatus=function(){return se().getRTLTextPluginStatus()},h.getVersion=function(){return am},h.getWorkerCount=function(){return Xe.workerCount},h.getWorkerUrl=function(){return u.a.WORKER_URL},h.importScriptInWorkers=function(y){return $n().broadcast("IS",y)},h.prewarm=function(){ri().acquire(Fe)},h.setMaxParallelImageRequests=function(y){u.a.MAX_PARALLEL_IMAGE_REQUESTS=y},h.setRTLTextPlugin=function(y,s){return se().setRTLTextPlugin(y,s)},h.setWorkerCount=function(y){Xe.workerCount=y},h.setWorkerUrl=function(y){u.a.WORKER_URL=y}});var a=n;return a})})(gx);var Ig=gx.exports;const Ps=dx(Ig);var nI=Object.defineProperty,iI=(e,t,n)=>t in e?nI(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,$v=(e,t,n)=>(iI(e,typeof t!="symbol"?t+"":t,n),n);function Xp(){}function yx(e){return e()}function Yv(){return Object.create(null)}function Eg(e){e.forEach(yx)}function vx(e){return typeof e=="function"}function rI(e,t){return e!=e?t==t:e!==t||e&&typeof e=="object"||typeof e=="function"}function oI(e){return Object.keys(e).length===0}function sI(e,t){e.appendChild(t)}function aI(e,t,n){e.insertBefore(t,n||null)}function bx(e){e.parentNode&&e.parentNode.removeChild(e)}function Kv(e){return document.createElementNS("http://www.w3.org/2000/svg",e)}function _u(e,t,n){n==null?e.removeAttribute(t):e.getAttribute(t)!==n&&e.setAttribute(t,n)}function lI(e){return Array.from(e.childNodes)}function km(e,t,n){e.classList.toggle(t,!!n)}let Uy;function Up(e){Uy=e}const Uh=[],Jv=[];let Wh=[];const Qv=[],uI=Promise.resolve();let uy=!1;function cI(){uy||(uy=!0,uI.then(xx))}function cy(e){Wh.push(e)}const K_=new Set;let zh=0;function xx(){if(zh!==0)return;const e=Uy;do{try{for(;zhe.indexOf(i)===-1?t.push(i):n.push(i)),n.forEach(i=>i()),Wh=t}const pI=new Set;function dI(e,t){e&&e.i&&(pI.delete(e),e.i(t))}function mI(e,t,n){const{fragment:i,after_update:r}=e.$$;i&&i.m(t,n),cy(()=>{const a=e.$$.on_mount.map(yx).filter(vx);e.$$.on_destroy?e.$$.on_destroy.push(...a):Eg(a),e.$$.on_mount=[]}),r.forEach(cy)}function gI(e,t){const n=e.$$;n.fragment!==null&&(fI(n.after_update),Eg(n.on_destroy),n.fragment&&n.fragment.d(t),n.on_destroy=n.fragment=null,n.ctx=[])}function _I(e,t){e.$$.dirty[0]===-1&&(Uh.push(e),cI(),e.$$.dirty.fill(0)),e.$$.dirty[t/31|0]|=1<{const D=A.length?A[0]:M;return w.ctx&&r(w.ctx[E],w.ctx[E]=D)&&(!w.skip_bound&&w.bound[E]&&w.bound[E](D),S&&_I(e,E)),M}):[],w.update(),S=!0,Eg(w.before_update),w.fragment=i?i(w.ctx):!1,t.target){if(t.hydrate){const E=lI(t.target);w.fragment&&w.fragment.l(E),E.forEach(bx)}else w.fragment&&w.fragment.c();t.intro&&dI(e.$$.fragment),mI(e,t.target,t.anchor),xx()}Up(_)}class vI{constructor(){$v(this,"$$"),$v(this,"$$set")}$destroy(){gI(this,1),this.$destroy=Xp}$on(t,n){if(!vx(n))return Xp;const i=this.$$.callbacks[t]||(this.$$.callbacks[t]=[]);return i.push(n),()=>{const r=i.indexOf(n);r!==-1&&i.splice(r,1)}}$set(t){this.$$set&&!oI(t)&&(this.$$.skip_bound=!0,this.$$set(t),this.$$.skip_bound=!1)}}const bI="4";typeof window<"u"&&(window.__svelte||(window.__svelte={v:new Set})).v.add(bI);function xI(e){let t,n,i;return{c(){t=Kv("svg"),n=Kv("path"),_u(n,"stroke-width","4"),_u(n,"d","M 5,33.103579 C 5,17.607779 18.457,5 35,5 C 51.543,5 65,17.607779 65,33.103579 C 65,56.388679 40.4668,76.048179 36.6112,79.137779 C 36.3714,79.329879 36.2116,79.457979 36.1427,79.518879 C 35.8203,79.800879 35.4102,79.942779 35,79.942779 C 34.5899,79.942779 34.1797,79.800879 33.8575,79.518879 C 33.7886,79.457979 33.6289,79.330079 33.3893,79.138079 C 29.5346,76.049279 5,56.389379 5,33.103579 Z M 35.0001,49.386379 C 43.1917,49.386379 49.8323,42.646079 49.8323,34.331379 C 49.8323,26.016779 43.1917,19.276479 35.0001,19.276479 C 26.8085,19.276479 20.1679,26.016779 20.1679,34.331379 C 20.1679,42.646079 26.8085,49.386379 35.0001,49.386379 Z"),_u(n,"class","svelte-gzo3ar"),_u(t,"width",i=e[0]==="list"?20:void 0),_u(t,"viewBox","0 0 70 85"),_u(t,"fill","none"),_u(t,"class","svelte-gzo3ar"),km(t,"in-map",e[0]!=="list"),km(t,"list-icon",e[0]==="list")},m(r,a){aI(r,t,a),sI(t,n)},p(r,[a]){a&1&&i!==(i=r[0]==="list"?20:void 0)&&_u(t,"width",i),a&1&&km(t,"in-map",r[0]!=="list"),a&1&&km(t,"list-icon",r[0]==="list")},i:Xp,o:Xp,d(r){r&&bx(t)}}}function wI(e,t,n){let{displayIn:i}=t;return e.$$set=r=>{"displayIn"in r&&n(0,i=r.displayIn)},[i]}class SI extends vI{constructor(t){super(),yI(this,t,wI,xI,rI,{displayIn:0})}}const II=[{verbatimCoordinates:"40.123, -74.123",verbatimLatitude:"40.123",verbatimLongitude:"-74.123"},{verbatimCoordinates:"40.123° N 74.123° W",verbatimLatitude:"40.123° N",verbatimLongitude:"74.123° W"},{verbatimCoordinates:"40.123° N 74.123° W",verbatimLatitude:"40.123° N",verbatimLongitude:"74.123° W"},{verbatimCoordinates:'40° 7´ 22.8" N 74° 7´ 22.8" W',verbatimLatitude:'40° 7´ 22.8" N',verbatimLongitude:'74° 7´ 22.8" W'},{verbatimCoordinates:"40° 7.38’ , -74° 7.38’",verbatimLatitude:"40° 7.38’",verbatimLongitude:"-74° 7.38’"},{verbatimCoordinates:"N40°7’22.8’’, W74°7’22.8’’",verbatimLatitude:"N40°7’22.8’’",verbatimLongitude:"W74°7’22.8’’"},{verbatimCoordinates:'40°7’22.8"N, 74°7’22.8"W',verbatimLatitude:'40°7’22.8"N',verbatimLongitude:'74°7’22.8"W'},{verbatimCoordinates:`40°7'22.8"N, 74°7'22.8"W`,verbatimLatitude:`40°7'22.8"N`,verbatimLongitude:`74°7'22.8"W`},{verbatimCoordinates:"40 7 22.8, -74 7 22.8",verbatimLatitude:"40 7 22.8",verbatimLongitude:"-74 7 22.8"},{verbatimCoordinates:"40.123 -74.123",verbatimLatitude:"40.123",verbatimLongitude:"-74.123"},{verbatimCoordinates:"40.123°,-74.123°",verbatimLatitude:"40.123°",verbatimLongitude:"-74.123°"},{verbatimCoordinates:"40.123N74.123W",verbatimLatitude:"40.123N",verbatimLongitude:"74.123W"},{verbatimCoordinates:"4007.38N7407.38W",verbatimLatitude:"4007.38N",verbatimLongitude:"7407.38W"},{verbatimCoordinates:'40°7’22.8"N, 74°7’22.8"W',verbatimLatitude:'40°7’22.8"N',verbatimLongitude:'74°7’22.8"W'},{verbatimCoordinates:"400722.8N740722.8W",verbatimLatitude:"400722.8N",verbatimLongitude:"740722.8W"},{verbatimCoordinates:"N 40 7.38 W 74 7.38",verbatimLatitude:"N 40 7.38",verbatimLongitude:"W 74 7.38"},{verbatimCoordinates:"40:7:22.8N 74:7:22.8W",verbatimLatitude:"40:7:22.8N",verbatimLongitude:"74:7:22.8W"},{verbatimCoordinates:"40:7:23N,74:7:23W",verbatimLatitude:"40:7:23N",verbatimLongitude:"74:7:23W",decimalLatitude:40.1230555555,decimalLongitude:-74.1230555555},{verbatimCoordinates:'40°7’23"N 74°7’23"W',verbatimLatitude:'40°7’23"N',verbatimLongitude:'74°7’23"W',decimalLatitude:40.1230555555,decimalLongitude:-74.12305555555555},{verbatimCoordinates:'40°7’23"S 74°7’23"E',verbatimLatitude:'40°7’23"S',verbatimLongitude:'74°7’23"E',decimalLatitude:-40.1230555555,decimalLongitude:74.12305555555555},{verbatimCoordinates:'40°7’23" -74°7’23"',verbatimLatitude:'40°7’23"',verbatimLongitude:'-74°7’23"',decimalLatitude:40.1230555555,decimalLongitude:-74.123055555},{verbatimCoordinates:'40d 7’ 23" N 74d 7’ 23" W',verbatimLatitude:'40d 7’ 23" N',verbatimLongitude:'74d 7’ 23" W',decimalLatitude:40.1230555555,decimalLongitude:-74.123055555},{verbatimCoordinates:"40.123N 74.123W",verbatimLatitude:"40.123N",verbatimLongitude:"74.123W"},{verbatimCoordinates:"40° 7.38, -74° 7.38",verbatimLatitude:"40° 7.38",verbatimLongitude:"-74° 7.38"},{verbatimCoordinates:"40° 7.38, -74° 7.38",verbatimLatitude:"40° 7.38",verbatimLongitude:"-74° 7.38"},{verbatimCoordinates:"40 7 22.8; -74 7 22.8",verbatimLatitude:"40 7 22.8",verbatimLongitude:"-74 7 22.8"}],EI={decimalLatitude:40.123,decimalLongitude:-74.123},CI=[{verbatimCoordinates:`50°4'17.698"south, 14°24'2.826"east`,verbatimLatitude:`50°4'17.698"south`,verbatimLongitude:`14°24'2.826"east`,decimalLatitude:-50.07158277777778,decimalLongitude:14.400785},{verbatimCoordinates:"50d4m17.698S 14d24m2.826E",verbatimLatitude:"50d4m17.698S",verbatimLongitude:"14d24m2.826E",decimalLatitude:-50.07158277777778,decimalLongitude:14.400785},{verbatimCoordinates:"40:26:46N,79:56:55W",verbatimLatitude:"40:26:46N",verbatimLongitude:"79:56:55W",decimalLatitude:40.44611111111111,decimalLongitude:-79.9486111111111},{verbatimCoordinates:"40:26:46.302N 79:56:55.903W",verbatimLatitude:"40:26:46.302N",verbatimLongitude:"79:56:55.903W",decimalLatitude:40.446195,decimalLongitude:-79.94886194444445},{verbatimCoordinates:"40°26′47″N 79°58′36″W",verbatimLatitude:"40°26′47″N",verbatimLongitude:"79°58′36″W",decimalLatitude:40.44638888888889,decimalLongitude:-79.97666666666667},{verbatimCoordinates:"40d 26′ 47″ N 79d 58′ 36″ W",verbatimLatitude:"40d 26′ 47″ N",verbatimLongitude:"79d 58′ 36″ W",decimalLatitude:40.44638888888889,decimalLongitude:-79.97666666666667},{verbatimCoordinates:"40.446195N 79.948862W",verbatimLatitude:"40.446195N",verbatimLongitude:"79.948862W",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40,446195° 79,948862°",verbatimLatitude:"40,446195°",verbatimLongitude:"79,948862°",decimalLatitude:40.446195,decimalLongitude:79.948862},{verbatimCoordinates:"40° 26.7717, -79° 56.93172",verbatimLatitude:"40° 26.7717",verbatimLongitude:"-79° 56.93172",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40.446195, -79.948862",verbatimLatitude:"40.446195",verbatimLongitude:"-79.948862",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"40.123256; -74.123256",verbatimLatitude:"40.123256",verbatimLongitude:"-74.123256",decimalLatitude:40.123256,decimalLongitude:-74.123256},{verbatimCoordinates:"18°24S 22°45E",verbatimLatitude:"18°24S",verbatimLongitude:"22°45E",decimalLatitude:-18.4,decimalLongitude:22.75}],TI=[{verbatimCoordinates:"10.432342S 10.6345345E",verbatimLatitude:"10.432342S",verbatimLongitude:"10.6345345E",decimalLatitude:-10.432342,decimalLongitude:10.6345345},{verbatimCoordinates:"10.00S 10.00E",verbatimLatitude:"10.00S",verbatimLongitude:"10.00E",decimalLatitude:-10,decimalLongitude:10},{verbatimCoordinates:"00.00S 01.00E",verbatimLatitude:"00.00S",verbatimLongitude:"01.00E",decimalLatitude:0,decimalLongitude:1},{verbatimCoordinates:"18.24S 22.45E",verbatimLatitude:"18.24S",verbatimLongitude:"22.45E",decimalLatitude:-18.4,decimalLongitude:22.75},{verbatimCoordinates:"27deg 15min 45.2sec S 18deg 32min 53.7sec E",verbatimLatitude:"27deg 15min 45.2sec S",verbatimLongitude:"18deg 32min 53.7sec E",decimalLatitude:-27.262555555555554,decimalLongitude:18.54825},{verbatimCoordinates:"-23.3245° S / 28.2344° E",verbatimLatitude:"-23.3245° S",verbatimLongitude:"28.2344° E",decimalLatitude:-23.3245,decimalLongitude:28.2344},{verbatimCoordinates:"40° 26.7717 -79° 56.93172",verbatimLatitude:"40° 26.7717",verbatimLongitude:"-79° 56.93172",decimalLatitude:40.446195,decimalLongitude:-79.948862},{verbatimCoordinates:"27.15.45S 18.32.53E",verbatimLatitude:"27.15.45S",verbatimLongitude:"18.32.53E",decimalLatitude:-27.2625,decimalLongitude:18.548055},{verbatimCoordinates:"-27.15.45 18.32.53",verbatimLatitude:"-27.15.45",verbatimLongitude:"18.32.53",decimalLatitude:-27.2625,decimalLongitude:18.548055},{verbatimCoordinates:"27.15.45.2S 18.32.53.4E",verbatimLatitude:"27.15.45.2S",verbatimLongitude:"18.32.53.4E",decimalLatitude:-27.262556,decimalLongitude:18.548167},{verbatimCoordinates:"27.15.45,2S 18.32.53,4E",verbatimLatitude:"27.15.45,2S",verbatimLongitude:"18.32.53,4E",decimalLatitude:-27.262556,decimalLongitude:18.548167},{verbatimCoordinates:"S23.43563 ° E22.45634 °",verbatimLatitude:"S23.43563 °",verbatimLongitude:"E22.45634 °",decimalLatitude:-23.43563,decimalLongitude:22.45634},{verbatimCoordinates:"27,71372° S 23,07771° E",verbatimLatitude:"27,71372° S",verbatimLongitude:"23,07771° E",decimalLatitude:-27.71372,decimalLongitude:23.07771},{verbatimCoordinates:"27.45.34 S 23.23.23 E",verbatimLatitude:"27.45.34 S",verbatimLongitude:"23.23.23 E",decimalLatitude:-27.759444,decimalLongitude:23.38972222},{verbatimCoordinates:"S 27.45.34 E 23.23.23",verbatimLatitude:"S 27.45.34",verbatimLongitude:"E 23.23.23",decimalLatitude:-27.759444,decimalLongitude:23.38972222}];function LI(){const e=[];return II.forEach(t=>{t.decimalLatitude?e.push(t):e.push({...t,...EI})}),[...e,...CI,...TI]}const MI=LI();MI.map(e=>e.verbatimCoordinates);/** - * splaytree v3.1.2 - * Fast Splay tree for Node and browser - * - * @author Alexander Milevski - * @license MIT - * @preserve - *//*! ***************************************************************************** -Copyright (c) Microsoft Corporation. All rights reserved. -Licensed under the Apache License, Version 2.0 (the "License"); you may not use -this file except in compliance with the License. You may obtain a copy of the -License at http://www.apache.org/licenses/LICENSE-2.0 - -THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED -WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, -MERCHANTABLITY OR NON-INFRINGEMENT. - -See the Apache Version 2.0 License for specific language governing permissions -and limitations under the License. -***************************************************************************** */function PI(e,t){var n={label:0,sent:function(){if(a[0]&1)throw a[1];return a[1]},trys:[],ops:[]},i,r,a,h;return h={next:u(0),throw:u(1),return:u(2)},typeof Symbol=="function"&&(h[Symbol.iterator]=function(){return this}),h;function u(w){return function(S){return _([w,S])}}function _(w){if(i)throw new TypeError("Generator is already executing.");for(;n;)try{if(i=1,r&&(a=w[0]&2?r.return:w[0]?r.throw||((a=r.return)&&a.call(r),0):r.next)&&!(a=a.call(r,w[1])).done)return a;switch(r=0,a&&(w=[w[0]&2,a.value]),w[0]){case 0:case 1:a=w;break;case 4:return n.label++,{value:w[1],done:!1};case 5:n.label++,r=w[1],w=[0];continue;case 7:w=n.ops.pop(),n.trys.pop();continue;default:if(a=n.trys,!(a=a.length>0&&a[a.length-1])&&(w[0]===6||w[0]===2)){n=0;continue}if(w[0]===3&&(!a||w[1]>a[0]&&w[1]t?1:e0){if(t.right===null)break;if(n(e,t.right.key)>0){var u=t.right;if(t.right=u.left,u.left=t,t=u,t.right===null)break}r.right=t,r=t,t=t.right}else break}return r.right=t.left,a.left=t.right,t.left=i.right,t.right=i.left,t}function J_(e,t,n,i){var r=new Cu(e,t);if(n===null)return r.left=r.right=null,r;n=xu(e,n,i);var a=i(e,n.key);return a<0?(r.left=n.left,r.right=n,n.left=null):a>=0&&(r.right=n.right,r.left=n,n.right=null),r}function t1(e,t,n){var i=null,r=null;if(t){t=xu(e,t,n);var a=n(t.key,e);a===0?(i=t.left,r=t.right):a<0?(r=t.right,t.right=null,i=t):(i=t.left,t.left=null,r=t)}return{left:i,right:r}}function AI(e,t,n){return t===null?e:(e===null||(t=xu(e.key,t,n),t.left=e),t)}function hy(e,t,n,i,r){if(e){i(""+t+(n?"└── ":"├── ")+r(e)+` -`);var a=t+(n?" ":"│ ");e.left&&hy(e.left,a,!1,i,r),e.right&&hy(e.right,a,!0,i,r)}}var Gy=function(){function e(t){t===void 0&&(t=kI),this._root=null,this._size=0,this._comparator=t}return e.prototype.insert=function(t,n){return this._size++,this._root=J_(t,n,this._root,this._comparator)},e.prototype.add=function(t,n){var i=new Cu(t,n);this._root===null&&(i.left=i.right=null,this._size++,this._root=i);var r=this._comparator,a=xu(t,this._root,r),h=r(t,a.key);return h===0?this._root=a:(h<0?(i.left=a.left,i.right=a,a.left=null):h>0&&(i.right=a.right,i.left=a,a.right=null),this._size++,this._root=i),this._root},e.prototype.remove=function(t){this._root=this._remove(t,this._root,this._comparator)},e.prototype._remove=function(t,n,i){var r;if(n===null)return null;n=xu(t,n,i);var a=i(t,n.key);return a===0?(n.left===null?r=n.right:(r=xu(t,n.left,i),r.right=n.right),this._size--,r):n},e.prototype.pop=function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=xu(t.key,this._root,this._comparator),this._root=this._remove(t.key,this._root,this._comparator),{key:t.key,data:t.data}}return null},e.prototype.findStatic=function(t){for(var n=this._root,i=this._comparator;n;){var r=i(t,n.key);if(r===0)return n;r<0?n=n.left:n=n.right}return null},e.prototype.find=function(t){return this._root&&(this._root=xu(t,this._root,this._comparator),this._comparator(t,this._root.key)!==0)?null:this._root},e.prototype.contains=function(t){for(var n=this._root,i=this._comparator;n;){var r=i(t,n.key);if(r===0)return!0;r<0?n=n.left:n=n.right}return!1},e.prototype.forEach=function(t,n){for(var i=this._root,r=[],a=!1;!a;)i!==null?(r.push(i),i=i.left):r.length!==0?(i=r.pop(),t.call(n,i),i=i.right):a=!0;return this},e.prototype.range=function(t,n,i,r){for(var a=[],h=this._comparator,u=this._root,_;a.length!==0||u;)if(u)a.push(u),u=u.left;else{if(u=a.pop(),_=h(u.key,n),_>0)break;if(h(u.key,t)>=0&&i.call(r,u))return this;u=u.right}return this},e.prototype.keys=function(){var t=[];return this.forEach(function(n){var i=n.key;return t.push(i)}),t},e.prototype.values=function(){var t=[];return this.forEach(function(n){var i=n.data;return t.push(i)}),t},e.prototype.min=function(){return this._root?this.minNode(this._root).key:null},e.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},e.prototype.minNode=function(t){if(t===void 0&&(t=this._root),t)for(;t.left;)t=t.left;return t},e.prototype.maxNode=function(t){if(t===void 0&&(t=this._root),t)for(;t.right;)t=t.right;return t},e.prototype.at=function(t){for(var n=this._root,i=!1,r=0,a=[];!i;)if(n)a.push(n),n=n.left;else if(a.length>0){if(n=a.pop(),r===t)return n;r++,n=n.right}else i=!0;return null},e.prototype.next=function(t){var n=this._root,i=null;if(t.right){for(i=t.right;i.left;)i=i.left;return i}for(var r=this._comparator;n;){var a=r(t.key,n.key);if(a===0)break;a<0?(i=n,n=n.left):n=n.right}return i},e.prototype.prev=function(t){var n=this._root,i=null;if(t.left!==null){for(i=t.left;i.right;)i=i.right;return i}for(var r=this._comparator;n;){var a=r(t.key,n.key);if(a===0)break;a<0?n=n.left:(i=n,n=n.right)}return i},e.prototype.clear=function(){return this._root=null,this._size=0,this},e.prototype.toList=function(){return RI(this._root)},e.prototype.load=function(t,n,i){n===void 0&&(n=[]),i===void 0&&(i=!1);var r=t.length,a=this._comparator;if(i&&dy(t,n,0,r-1,a),this._root===null)this._root=fy(t,n,0,r),this._size=r;else{var h=NI(this.toList(),DI(t,n),a);r=this._size+r,this._root=py({head:h},0,r)}return this},e.prototype.isEmpty=function(){return this._root===null},Object.defineProperty(e.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(e.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),e.prototype.toString=function(t){t===void 0&&(t=function(i){return String(i.key)});var n=[];return hy(this._root,"",!0,function(i){return n.push(i)},t),n.join("")},e.prototype.update=function(t,n,i){var r=this._comparator,a=t1(t,this._root,r),h=a.left,u=a.right;r(t,n)<0?u=J_(n,i,u,r):h=J_(n,i,h,r),this._root=AI(h,u,r)},e.prototype.split=function(t){return t1(t,this._root,this._comparator)},e.prototype[Symbol.iterator]=function(){var t,n,i;return PI(this,function(r){switch(r.label){case 0:t=this._root,n=[],i=!1,r.label=1;case 1:return i?[3,6]:t===null?[3,2]:(n.push(t),t=t.left,[3,5]);case 2:return n.length===0?[3,4]:(t=n.pop(),[4,t]);case 3:return r.sent(),t=t.right,[3,5];case 4:i=!0,r.label=5;case 5:return[3,1];case 6:return[2]}})},e}();function fy(e,t,n,i){var r=i-n;if(r>0){var a=n+Math.floor(r/2),h=e[a],u=t[a],_=new Cu(h,u);return _.left=fy(e,t,n,a),_.right=fy(e,t,a+1,i),_}return null}function DI(e,t){for(var n=new Cu(null,null),i=n,r=0;r0?(t=a=a.next=n.pop(),t=t.right):i=!0;return a.next=null,r.next}function py(e,t,n){var i=n-t;if(i>0){var r=t+Math.floor(i/2),a=py(e,t,r),h=e.head;return h.left=a,e.head=e.head.next,h.right=py(e,r+1,n),h}return null}function NI(e,t,n){for(var i=new Cu(null,null),r=i,a=e,h=t;a!==null&&h!==null;)n(a.key,h.key)<0?(r.next=a,a=a.next):(r.next=h,h=h.next),r=r.next;return a!==null?r.next=a:h!==null&&(r.next=h),i.next}function dy(e,t,n,i,r){if(!(n>=i)){for(var a=e[n+i>>1],h=n-1,u=i+1;;){do h++;while(r(e[h],a)<0);do u--;while(r(e[u],a)>0);if(h>=u)break;var _=e[h];e[h]=e[u],e[u]=_,_=t[h],t[h]=t[u],t[u]=_}dy(e,t,n,u,r),dy(e,t,u+1,i,r)}}function _a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function e1(e,t){for(var n=0;nn.x?1:t.yn.y?1:0}}]);function e(t,n){_a(this,e),t.events===void 0?t.events=[this]:t.events.push(this),this.point=t,this.isLeft=n}return Yo(e,[{key:"link",value:function(t){if(t.point===this.point)throw new Error("Tried to link already linked events");for(var n=t.point.events,i=0,r=n.length;i=0&&E>=0?wM?-1:0:_<0&&E<0?wM?1:0:E<_?-1:E>_?1:0}}}]),e}(),UI=0,Jm=function(){Yo(e,null,[{key:"compare",value:function(t,n){var i=t.leftSE.point.x,r=n.leftSE.point.x,a=t.rightSE.point.x,h=n.rightSE.point.x;if(hu&&_>w)return-1;var E=t.comparePoint(n.leftSE.point);if(E<0)return 1;if(E>0)return-1;var M=n.comparePoint(t.rightSE.point);return M!==0?M:-1}if(i>r){if(u<_&&u_&&u>S)return 1;var A=n.comparePoint(t.leftSE.point);if(A!==0)return A;var D=t.comparePoint(n.rightSE.point);return D<0?1:D>0?-1:1}if(u<_)return-1;if(u>_)return 1;if(ah){var F=t.comparePoint(n.rightSE.point);if(F<0)return 1;if(F>0)return-1}if(a!==h){var G=w-u,V=a-i,Z=S-_,$=h-r;if(G>V&&Z<$)return 1;if(G$)return-1}return a>h?1:aS?1:t.idn.id?1:0}}]);function e(t,n,i,r){_a(this,e),this.id=++UI,this.leftSE=t,t.segment=this,t.otherSE=n,this.rightSE=n,n.segment=this,n.otherSE=t,this.rings=i,this.windings=r}return Yo(e,[{key:"replaceRightSE",value:function(t){this.rightSE=t,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var t=this.leftSE.point.y,n=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:tn?t:n}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(t){return t.x===this.leftSE.point.x&&t.y===this.leftSE.point.y||t.x===this.rightSE.point.x&&t.y===this.rightSE.point.y}},{key:"comparePoint",value:function(t){if(this.isAnEndpoint(t))return 0;var n=this.leftSE.point,i=this.rightSE.point,r=this.vector();if(n.x===i.x)return t.x===n.x?0:t.x0&&u.swapEvents(),ol.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),i&&(r.checkForConsuming(),a.checkForConsuming()),n}},{key:"swapEvents",value:function(){var t=this.rightSE;this.rightSE=this.leftSE,this.leftSE=t,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var n=0,i=this.windings.length;n0){var a=n;n=i,i=a}if(n.prev===i){var h=n;n=i,i=h}for(var u=0,_=i.rings.length;u<_;u++){var w=i.rings[u],S=i.windings[u],E=n.rings.indexOf(w);E===-1?(n.rings.push(w),n.windings.push(S)):n.windings[E]+=S}i.rings=null,i.windings=null,i.consumedBy=n,i.leftSE.consumedBy=n.leftSE,i.rightSE.consumedBy=n.rightSE}}},{key:"prevInResult",value:function(){return this._prevInResult!==void 0?this._prevInResult:(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null,this._prevInResult)}},{key:"beforeState",value:function(){if(this._beforeState!==void 0)return this._beforeState;if(!this.prev)this._beforeState={rings:[],windings:[],multiPolys:[]};else{var t=this.prev.consumedBy||this.prev;this._beforeState=t.afterState()}return this._beforeState}},{key:"afterState",value:function(){if(this._afterState!==void 0)return this._afterState;var t=this.beforeState();this._afterState={rings:t.rings.slice(0),windings:t.windings.slice(0),multiPolys:[]};for(var n=this._afterState.rings,i=this._afterState.windings,r=this._afterState.multiPolys,a=0,h=this.rings.length;a0)r=n,a=t,h=-1;else throw new Error("Tried to create degenerate segment at [".concat(t.x,", ").concat(t.y,"]"));var _=new ol(r,!0),w=new ol(a,!1);return new e(_,w,[i],[h])}}]),e}(),s1=function(){function e(t,n,i){if(_a(this,e),!Array.isArray(t)||t.length===0)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=n,this.isExterior=i,this.segments=[],typeof t[0][0]!="number"||typeof t[0][1]!="number")throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var r=$p.round(t[0][0],t[0][1]);this.bbox={ll:{x:r.x,y:r.y},ur:{x:r.x,y:r.y}};for(var a=r,h=1,u=t.length;hthis.bbox.ur.x&&(this.bbox.ur.x=_.x),_.y>this.bbox.ur.y&&(this.bbox.ur.y=_.y),a=_)}(r.x!==a.x||r.y!==a.y)&&this.segments.push(Jm.fromRing(a,r,this))}return Yo(e,[{key:"getSweepEvents",value:function(){for(var t=[],n=0,i=this.segments.length;nthis.bbox.ur.x&&(this.bbox.ur.x=a.bbox.ur.x),a.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=a.bbox.ur.y),this.interiorRings.push(a)}this.multiPoly=n}return Yo(e,[{key:"getSweepEvents",value:function(){for(var t=this.exteriorRing.getSweepEvents(),n=0,i=this.interiorRings.length;nthis.bbox.ur.x&&(this.bbox.ur.x=a.bbox.ur.x),a.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=a.bbox.ur.y),this.polys.push(a)}this.isSubject=n}return Yo(e,[{key:"getSweepEvents",value:function(){for(var t=[],n=0,i=this.polys.length;n0&&(t=r)}for(var a=t.segment.prevInResult(),h=a?a.prevInResult():null;;){if(!a)return null;if(!h)return a.ringOut;if(h.ringOut!==a.ringOut)return h.ringOut.enclosingRing()!==a.ringOut?a.ringOut:a.ringOut.enclosingRing();a=h.prevInResult(),h=a?a.prevInResult():null}}}]),e}(),l1=function(){function e(t){_a(this,e),this.exteriorRing=t,t.poly=this,this.interiorRings=[]}return Yo(e,[{key:"addInterior",value:function(t){this.interiorRings.push(t),t.poly=this}},{key:"getGeom",value:function(){var t=[this.exteriorRing.getGeom()];if(t[0]===null)return null;for(var n=0,i=this.interiorRings.length;n1&&arguments[1]!==void 0?arguments[1]:Jm.compare;_a(this,e),this.queue=t,this.tree=new Gy(n),this.segments=[]}return Yo(e,[{key:"process",value:function(t){var n=t.segment,i=[];if(t.consumedBy)return t.isLeft?this.queue.remove(t.otherSE):this.tree.remove(n),i;var r=t.isLeft?this.tree.insert(n):this.tree.find(n);if(!r)throw new Error("Unable to find segment #".concat(n.id," ")+"[".concat(n.leftSE.point.x,", ").concat(n.leftSE.point.y,"] -> ")+"[".concat(n.rightSE.point.x,", ").concat(n.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var a=r,h=r,u=void 0,_=void 0;u===void 0;)a=this.tree.prev(a),a===null?u=null:a.key.consumedBy===void 0&&(u=a.key);for(;_===void 0;)h=this.tree.next(h),h===null?_=null:h.key.consumedBy===void 0&&(_=h.key);if(t.isLeft){var w=null;if(u){var S=u.getIntersection(n);if(S!==null&&(n.isAnEndpoint(S)||(w=S),!u.isAnEndpoint(S)))for(var E=this._splitSafely(u,S),M=0,A=E.length;M0?(this.tree.remove(n),i.push(t)):(this.segments.push(n),n.prev=u)}else{if(u&&_){var St=u.getIntersection(_);if(St!==null){if(!u.isAnEndpoint(St))for(var ut=this._splitSafely(u,St),kt=0,mt=ut.length;ktu1)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var $=new ZI(D),Q=D.size,pt=D.pop();pt;){var st=pt.key;if(D.size===Q){var St=st.segment;throw new Error("Unable to pop() ".concat(st.isLeft?"left":"right"," SweepEvent ")+"[".concat(st.point.x,", ").concat(st.point.y,"] from segment #").concat(St.id," ")+"[".concat(St.leftSE.point.x,", ").concat(St.leftSE.point.y,"] -> ")+"[".concat(St.rightSE.point.x,", ").concat(St.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(D.size>u1)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if($.segments.length>WI)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var ut=$.process(st),kt=0,mt=ut.length;kt1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;i1?t-1:0),i=1;in[0]&&(t[0]=n[0]),t[1]>n[1]&&(t[1]=n[1]),t[2]t.x?1:this.yt.y?1:0};Rt.prototype.clone=function(){};Rt.prototype.copy=function(){return new Rt(this)};Rt.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"};Rt.prototype.distance3D=function(e){var t=this.x-e.x,n=this.y-e.y,i=this.z-e.z;return Math.sqrt(t*t+n*n+i*i)};Rt.prototype.distance=function(e){var t=this.x-e.x,n=this.y-e.y;return Math.sqrt(t*t+n*n)};Rt.prototype.hashCode=function(){var e=17;return e=37*e+Rt.hashCode(this.x),e=37*e+Rt.hashCode(this.y),e};Rt.prototype.setCoordinate=function(e){this.x=e.x,this.y=e.y,this.z=e.z};Rt.prototype.interfaces_=function(){return[_s,Tg,ys]};Rt.prototype.getClass=function(){return Rt};Rt.hashCode=function(){if(arguments.length===1){var e=arguments[0],t=on.doubleToLongBits(e);return Math.trunc((t^t)>>>32)}};Rc.DimensionalComparator.get=function(){return Fl};Rc.serialVersionUID.get=function(){return 6683108902428367e3};Rc.NULL_ORDINATE.get=function(){return on.NaN};Rc.X.get=function(){return 0};Rc.Y.get=function(){return 1};Rc.Z.get=function(){return 2};Object.defineProperties(Rt,Rc);var Fl=function(e){if(this._dimensionsToTest=2,arguments.length!==0&&arguments.length===1){var t=arguments[0];if(t!==2&&t!==3)throw new pi("only 2 or 3 dimensions may be specified");this._dimensionsToTest=t}};Fl.prototype.compare=function(e,t){var n=e,i=t,r=Fl.compare(n.x,i.x);if(r!==0)return r;var a=Fl.compare(n.y,i.y);if(a!==0)return a;if(this._dimensionsToTest<=2)return 0;var h=Fl.compare(n.z,i.z);return h};Fl.prototype.interfaces_=function(){return[Xh]};Fl.prototype.getClass=function(){return Fl};Fl.compare=function(e,t){return et?1:on.isNaN(e)?on.isNaN(t)?0:-1:on.isNaN(t)?1:0};var $h=function(){};$h.prototype.create=function(){};$h.prototype.interfaces_=function(){return[]};$h.prototype.getClass=function(){return $h};var Ot=function(){},md={INTERIOR:{configurable:!0},BOUNDARY:{configurable:!0},EXTERIOR:{configurable:!0},NONE:{configurable:!0}};Ot.prototype.interfaces_=function(){return[]};Ot.prototype.getClass=function(){return Ot};Ot.toLocationSymbol=function(e){switch(e){case Ot.EXTERIOR:return"e";case Ot.BOUNDARY:return"b";case Ot.INTERIOR:return"i";case Ot.NONE:return"-"}throw new pi("Unknown location value: "+e)};md.INTERIOR.get=function(){return 0};md.BOUNDARY.get=function(){return 1};md.EXTERIOR.get=function(){return 2};md.NONE.get=function(){return-1};Object.defineProperties(Ot,md);var We=function(e,t){return e.interfaces_&&e.interfaces_().indexOf(t)>-1},Ko=function(){},Px={LOG_10:{configurable:!0}};Ko.prototype.interfaces_=function(){return[]};Ko.prototype.getClass=function(){return Ko};Ko.log10=function(e){var t=Math.log(e);return on.isInfinite(t)||on.isNaN(t)?t:t/Ko.LOG_10};Ko.min=function(e,t,n,i){var r=e;return tn?n:e}else if(Number.isInteger(arguments[2])&&Number.isInteger(arguments[0])&&Number.isInteger(arguments[1])){var i=arguments[0],r=arguments[1],a=arguments[2];return ia?a:i}};Ko.wrap=function(e,t){return e<0?t- -e%t:e%t};Ko.max=function(){if(arguments.length===3){var e=arguments[0],t=arguments[1],n=arguments[2],i=e;return t>i&&(i=t),n>i&&(i=n),i}else if(arguments.length===4){var r=arguments[0],a=arguments[1],h=arguments[2],u=arguments[3],_=r;return a>_&&(_=a),h>_&&(_=h),u>_&&(_=u),_}};Ko.average=function(e,t){return(e+t)/2};Px.LOG_10.get=function(){return Math.log(10)};Object.defineProperties(Ko,Px);var ya=function(e){this.str=e};ya.prototype.append=function(e){this.str+=e};ya.prototype.setCharAt=function(e,t){this.str=this.str.substr(0,e)+t+this.str.substr(e+1)};ya.prototype.toString=function(e){return this.str};var sa=function(e){this.value=e};sa.prototype.intValue=function(){return this.value};sa.prototype.compareTo=function(e){return this.valuee?1:0};sa.isNaN=function(e){return Number.isNaN(e)};var Yp=function(){};Yp.isWhitespace=function(e){return e<=32&&e>=0||e===127};Yp.toUpperCase=function(e){return e.toUpperCase()};var Gt=function e(){if(this._hi=0,this._lo=0,arguments.length===0)this.init(0);else if(arguments.length===1){if(typeof arguments[0]=="number"){var t=arguments[0];this.init(t)}else if(arguments[0]instanceof e){var n=arguments[0];this.init(n)}else if(typeof arguments[0]=="string"){var i=arguments[0];e.call(this,e.parse(i))}}else if(arguments.length===2){var r=arguments[0],a=arguments[1];this.init(r,a)}},Vs={PI:{configurable:!0},TWO_PI:{configurable:!0},PI_2:{configurable:!0},E:{configurable:!0},NaN:{configurable:!0},EPS:{configurable:!0},SPLIT:{configurable:!0},MAX_PRINT_DIGITS:{configurable:!0},TEN:{configurable:!0},ONE:{configurable:!0},SCI_NOT_EXPONENT_CHAR:{configurable:!0},SCI_NOT_ZERO:{configurable:!0}};Gt.prototype.le=function(e){return(this._hi9?(S=!0,E="9"):E="0"+w,h.append(E),n=n.subtract(Gt.valueOf(w)).multiply(Gt.TEN),S&&n.selfAdd(Gt.TEN);var M=!0,A=Gt.magnitude(n._hi);if(A<0&&Math.abs(A)>=u-_&&(M=!1),!M)break}return t[0]=i,h.toString()};Gt.prototype.sqr=function(){return this.multiply(this)};Gt.prototype.doubleValue=function(){return this._hi+this._lo};Gt.prototype.subtract=function(){if(arguments[0]instanceof Gt){var e=arguments[0];return this.add(e.negate())}else if(typeof arguments[0]=="number"){var t=arguments[0];return this.add(-t)}};Gt.prototype.equals=function(){if(arguments.length===1){var e=arguments[0];return this._hi===e._hi&&this._lo===e._lo}};Gt.prototype.isZero=function(){return this._hi===0&&this._lo===0};Gt.prototype.selfSubtract=function(){if(arguments[0]instanceof Gt){var e=arguments[0];return this.isNaN()?this:this.selfAdd(-e._hi,-e._lo)}else if(typeof arguments[0]=="number"){var t=arguments[0];return this.isNaN()?this:this.selfAdd(-t,0)}};Gt.prototype.getSpecialNumberString=function(){return this.isZero()?"0.0":this.isNaN()?"NaN ":null};Gt.prototype.min=function(e){return this.le(e)?this:e};Gt.prototype.selfDivide=function(){if(arguments.length===1){if(arguments[0]instanceof Gt){var e=arguments[0];return this.selfDivide(e._hi,e._lo)}else if(typeof arguments[0]=="number"){var t=arguments[0];return this.selfDivide(t,0)}}else if(arguments.length===2){var n=arguments[0],i=arguments[1],r=null,a=null,h=null,u=null,_=null,w=null,S=null,E=null;return _=this._hi/n,w=Gt.SPLIT*_,r=w-_,E=Gt.SPLIT*n,r=w-r,a=_-r,h=E-n,S=_*n,h=E-h,u=n-h,E=r*h-S+r*u+a*h+a*u,w=(this._hi-S-E+this._lo-_*i)/n,E=_+w,this._hi=E,this._lo=_-E+w,this}};Gt.prototype.dump=function(){return"DD<"+this._hi+", "+this._lo+">"};Gt.prototype.divide=function(){if(arguments[0]instanceof Gt){var e=arguments[0],t=null,n=null,i=null,r=null,a=null,h=null,u=null,_=null;a=this._hi/e._hi,h=Gt.SPLIT*a,t=h-a,_=Gt.SPLIT*e._hi,t=h-t,n=a-t,i=_-e._hi,u=a*e._hi,i=_-i,r=e._hi-i,_=t*i-u+t*r+n*i+n*r,h=(this._hi-u-_+this._lo-a*e._lo)/e._hi,_=a+h;var w=_,S=a-_+h;return new Gt(w,S)}else if(typeof arguments[0]=="number"){var E=arguments[0];return on.isNaN(E)?Gt.createNaN():Gt.copy(this).selfDivide(E,0)}};Gt.prototype.ge=function(e){return(this._hi>e._hi||this._hi===e._hi)&&this._lo>=e._lo};Gt.prototype.pow=function(e){if(e===0)return Gt.valueOf(1);var t=new Gt(this),n=Gt.valueOf(1),i=Math.abs(e);if(i>1)for(;i>0;)i%2===1&&n.selfMultiply(t),i/=2,i>0&&(t=t.sqr());else n=t;return e<0?n.reciprocal():n};Gt.prototype.ceil=function(){if(this.isNaN())return Gt.NaN;var e=Math.ceil(this._hi),t=0;return e===this._hi&&(t=Math.ceil(this._lo)),new Gt(e,t)};Gt.prototype.compareTo=function(e){var t=e;return this._hit._hi?1:this._lot._lo?1:0};Gt.prototype.rint=function(){if(this.isNaN())return this;var e=this.add(.5);return e.floor()};Gt.prototype.setValue=function(){if(arguments[0]instanceof Gt){var e=arguments[0];return this.init(e),this}else if(typeof arguments[0]=="number"){var t=arguments[0];return this.init(t),this}};Gt.prototype.max=function(e){return this.ge(e)?this:e};Gt.prototype.sqrt=function(){if(this.isZero())return Gt.valueOf(0);if(this.isNegative())return Gt.NaN;var e=1/Math.sqrt(this._hi),t=this._hi*e,n=Gt.valueOf(t),i=this.subtract(n.sqr()),r=i._hi*(e*.5);return n.add(r)};Gt.prototype.selfAdd=function(){if(arguments.length===1){if(arguments[0]instanceof Gt){var e=arguments[0];return this.selfAdd(e._hi,e._lo)}else if(typeof arguments[0]=="number"){var t=arguments[0],n=null,i=null,r=null,a=null,h=null,u=null;return r=this._hi+t,h=r-this._hi,a=r-h,a=t-h+(this._hi-a),u=a+this._lo,n=r+u,i=u+(r-n),this._hi=n+i,this._lo=i+(n-this._hi),this}}else if(arguments.length===2){var _=arguments[0],w=arguments[1],S=null,E=null,M=null,A=null,D=null,O=null,F=null,G=null;D=this._hi+_,M=this._lo+w,F=D-this._hi,G=M-this._lo,O=D-F,A=M-G,O=_-F+(this._hi-O),A=w-G+(this._lo-A),F=O+M,S=D+F,E=F+(D-S),F=A+E;var V=S+F,Z=F+(S-V);return this._hi=V,this._lo=Z,this}};Gt.prototype.selfMultiply=function(){if(arguments.length===1){if(arguments[0]instanceof Gt){var e=arguments[0];return this.selfMultiply(e._hi,e._lo)}else if(typeof arguments[0]=="number"){var t=arguments[0];return this.selfMultiply(t,0)}}else if(arguments.length===2){var n=arguments[0],i=arguments[1],r=null,a=null,h=null,u=null,_=null,w=null;_=Gt.SPLIT*this._hi,r=_-this._hi,w=Gt.SPLIT*n,r=_-r,a=this._hi-r,h=w-n,_=this._hi*n,h=w-h,u=n-h,w=r*h-_+r*u+a*h+a*u+(this._hi*i+this._lo*n);var S=_+w;r=_-S;var E=w+r;return this._hi=S,this._lo=E,this}};Gt.prototype.selfSqr=function(){return this.selfMultiply(this)};Gt.prototype.floor=function(){if(this.isNaN())return Gt.NaN;var e=Math.floor(this._hi),t=0;return e===this._hi&&(t=Math.floor(this._lo)),new Gt(e,t)};Gt.prototype.negate=function(){return this.isNaN()?this:new Gt(-this._hi,-this._lo)};Gt.prototype.clone=function(){};Gt.prototype.multiply=function(){if(arguments[0]instanceof Gt){var e=arguments[0];return e.isNaN()?Gt.createNaN():Gt.copy(this).selfMultiply(e)}else if(typeof arguments[0]=="number"){var t=arguments[0];return on.isNaN(t)?Gt.createNaN():Gt.copy(this).selfMultiply(t,0)}};Gt.prototype.isNaN=function(){return on.isNaN(this._hi)};Gt.prototype.intValue=function(){return Math.trunc(this._hi)};Gt.prototype.toString=function(){var e=Gt.magnitude(this._hi);return e>=-3&&e<=20?this.toStandardNotation():this.toSciNotation()};Gt.prototype.toStandardNotation=function(){var e=this.getSpecialNumberString();if(e!==null)return e;var t=new Array(1).fill(null),n=this.extractSignificantDigits(!0,t),i=t[0]+1,r=n;if(n.charAt(0)===".")r="0"+n;else if(i<0)r="0."+Gt.stringOfChar("0",-i)+n;else if(n.indexOf(".")===-1){var a=i-n.length,h=Gt.stringOfChar("0",a);r=n+h+".0"}return this.isNegative()?"-"+r:r};Gt.prototype.reciprocal=function(){var e=null,t=null,n=null,i=null,r=null,a=null,h=null,u=null;r=1/this._hi,a=Gt.SPLIT*r,e=a-r,u=Gt.SPLIT*this._hi,e=a-e,t=r-e,n=u-this._hi,h=r*this._hi,n=u-n,i=this._hi-n,u=e*n-h+e*i+t*n+t*i,a=(1-h-u-r*this._lo)/this._hi;var _=r+a,w=r-_+a;return new Gt(_,w)};Gt.prototype.toSciNotation=function(){if(this.isZero())return Gt.SCI_NOT_ZERO;var e=this.getSpecialNumberString();if(e!==null)return e;var t=new Array(1).fill(null),n=this.extractSignificantDigits(!1,t),i=Gt.SCI_NOT_EXPONENT_CHAR+t[0];if(n.charAt(0)==="0")throw new Error("Found leading zero: "+n);var r="";n.length>1&&(r=n.substring(1));var a=n.charAt(0)+"."+r;return this.isNegative()?"-"+a+i:a+i};Gt.prototype.abs=function(){return this.isNaN()?Gt.NaN:this.isNegative()?this.negate():new Gt(this)};Gt.prototype.isPositive=function(){return(this._hi>0||this._hi===0)&&this._lo>0};Gt.prototype.lt=function(e){return(this._hie._hi||this._hi===e._hi)&&this._lo>e._lo};Gt.prototype.isNegative=function(){return(this._hi<0||this._hi===0)&&this._lo<0};Gt.prototype.trunc=function(){return this.isNaN()?Gt.NaN:this.isPositive()?this.floor():this.ceil()};Gt.prototype.signum=function(){return this._hi>0?1:this._hi<0?-1:this._lo>0?1:this._lo<0?-1:0};Gt.prototype.interfaces_=function(){return[ys,_s,Tg]};Gt.prototype.getClass=function(){return Gt};Gt.sqr=function(e){return Gt.valueOf(e).selfMultiply(e)};Gt.valueOf=function(){if(typeof arguments[0]=="string"){var e=arguments[0];return Gt.parse(e)}else if(typeof arguments[0]=="number"){var t=arguments[0];return new Gt(t)}};Gt.sqrt=function(e){return Gt.valueOf(e).sqrt()};Gt.parse=function(e){for(var t=0,n=e.length;Yp.isWhitespace(e.charAt(t));)t++;var i=!1;if(t=n);){var w=e.charAt(t);if(t++,Yp.isDigit(w)){var S=w-"0";a.selfMultiply(Gt.TEN),a.selfAdd(S),h++;continue}if(w==="."){u=h;continue}if(w==="e"||w==="E"){var E=e.substring(t);try{_=sa.parseInt(E)}catch(F){throw F instanceof Error?new Error("Invalid exponent "+E+" in string "+e):F}finally{}break}throw new Error("Unexpected character '"+w+"' at position "+t+" in string "+e)}var M=a,A=h-u-_;if(A===0)M=a;else if(A>0){var D=Gt.TEN.pow(A);M=a.divide(D)}else if(A<0){var O=Gt.TEN.pow(-A);M=a.multiply(O)}return i?M.negate():M};Gt.createNaN=function(){return new Gt(on.NaN,on.NaN)};Gt.copy=function(e){return new Gt(e)};Gt.magnitude=function(e){var t=Math.abs(e),n=Math.log(t)/Math.log(10),i=Math.trunc(Math.floor(n)),r=Math.pow(10,i);return r*10<=t&&(i+=1),i};Gt.stringOfChar=function(e,t){for(var n=new ya,i=0;i0){if(a<=0)return ho.signum(h);i=r+a}else if(r<0){if(a>=0)return ho.signum(h);i=-r-a}else return ho.signum(h);var u=ho.DP_SAFE_EPSILON*i;return h>=u||-h>=u?ho.signum(h):2};ho.signum=function(e){return e>0?1:e<0?-1:0};kx.DP_SAFE_EPSILON.get=function(){return 1e-15};Object.defineProperties(ho,kx);var Pn=function(){},gd={X:{configurable:!0},Y:{configurable:!0},Z:{configurable:!0},M:{configurable:!0}};gd.X.get=function(){return 0};gd.Y.get=function(){return 1};gd.Z.get=function(){return 2};gd.M.get=function(){return 3};Pn.prototype.setOrdinate=function(e,t,n){};Pn.prototype.size=function(){};Pn.prototype.getOrdinate=function(e,t){};Pn.prototype.getCoordinate=function(){};Pn.prototype.getCoordinateCopy=function(e){};Pn.prototype.getDimension=function(){};Pn.prototype.getX=function(e){};Pn.prototype.clone=function(){};Pn.prototype.expandEnvelope=function(e){};Pn.prototype.copy=function(){};Pn.prototype.getY=function(e){};Pn.prototype.toCoordinateArray=function(){};Pn.prototype.interfaces_=function(){return[Tg]};Pn.prototype.getClass=function(){return Pn};Object.defineProperties(Pn,gd);var Ax=function(){},yf=function(e){function t(){e.call(this,"Projective point not representable on the Cartesian plane.")}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(Ax),Mr=function(){};Mr.arraycopy=function(e,t,n,i,r){for(var a=0,h=t;he._minx?this._minx:e._minx,n=this._miny>e._miny?this._miny:e._miny,i=this._maxx=this._minx&&t.getMaxX()<=this._maxx&&t.getMinY()>=this._miny&&t.getMaxY()<=this._maxy}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];return this.isNull()?!1:n>=this._minx&&n<=this._maxx&&i>=this._miny&&i<=this._maxy}};Oe.prototype.intersects=function(){if(arguments.length===1){if(arguments[0]instanceof Oe){var e=arguments[0];return this.isNull()||e.isNull()?!1:!(e._minx>this._maxx||e._maxxthis._maxy||e._maxythis._maxx||nthis._maxy||ithis._maxx&&(this._maxx=t._maxx),t._minythis._maxy&&(this._maxy=t._maxy))}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];this.isNull()?(this._minx=n,this._maxx=n,this._miny=i,this._maxy=i):(nthis._maxx&&(this._maxx=n),ithis._maxy&&(this._maxy=i))}};Oe.prototype.minExtent=function(){if(this.isNull())return 0;var e=this.getWidth(),t=this.getHeight();return et._minx?1:this._minyt._miny?1:this._maxxt._maxx?1:this._maxyt._maxy?1:0};Oe.prototype.translate=function(e,t){if(this.isNull())return null;this.init(this.getMinX()+e,this.getMaxX()+e,this.getMinY()+t,this.getMaxY()+t)};Oe.prototype.toString=function(){return"Env["+this._minx+" : "+this._maxx+", "+this._miny+" : "+this._maxy+"]"};Oe.prototype.setToNull=function(){this._minx=0,this._maxx=-1,this._miny=0,this._maxy=-1};Oe.prototype.getHeight=function(){return this.isNull()?0:this._maxy-this._miny};Oe.prototype.maxExtent=function(){if(this.isNull())return 0;var e=this.getWidth(),t=this.getHeight();return e>t?e:t};Oe.prototype.expandBy=function(){if(arguments.length===1){var e=arguments[0];this.expandBy(e,e)}else if(arguments.length===2){var t=arguments[0],n=arguments[1];if(this.isNull())return null;this._minx-=t,this._maxx+=t,this._miny-=n,this._maxy+=n,(this._minx>this._maxx||this._miny>this._maxy)&&this.setToNull()}};Oe.prototype.contains=function(){if(arguments.length===1){if(arguments[0]instanceof Oe){var e=arguments[0];return this.covers(e)}else if(arguments[0]instanceof Rt){var t=arguments[0];return this.covers(t)}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];return this.covers(n,i)}};Oe.prototype.centre=function(){return this.isNull()?null:new Rt((this.getMinX()+this.getMaxX())/2,(this.getMinY()+this.getMaxY())/2)};Oe.prototype.init=function(){if(arguments.length===0)this.setToNull();else if(arguments.length===1){if(arguments[0]instanceof Rt){var e=arguments[0];this.init(e.x,e.x,e.y,e.y)}else if(arguments[0]instanceof Oe){var t=arguments[0];this._minx=t._minx,this._maxx=t._maxx,this._miny=t._miny,this._maxy=t._maxy}}else if(arguments.length===2){var n=arguments[0],i=arguments[1];this.init(n.x,i.x,n.y,i.y)}else if(arguments.length===4){var r=arguments[0],a=arguments[1],h=arguments[2],u=arguments[3];re._maxx&&(t=this._minx-e._maxx);var n=0;return this._maxye._maxy&&(n=this._miny-e._maxy),t===0?n:n===0?t:Math.sqrt(t*t+n*n)};Oe.prototype.hashCode=function(){var e=17;return e=37*e+Rt.hashCode(this._minx),e=37*e+Rt.hashCode(this._maxx),e=37*e+Rt.hashCode(this._miny),e=37*e+Rt.hashCode(this._maxy),e};Oe.prototype.interfaces_=function(){return[_s,ys]};Oe.prototype.getClass=function(){return Oe};Oe.intersects=function(){if(arguments.length===3){var e=arguments[0],t=arguments[1],n=arguments[2];return n.x>=(e.xt.x?e.x:t.x)&&n.y>=(e.yt.y?e.y:t.y)}else if(arguments.length===4){var i=arguments[0],r=arguments[1],a=arguments[2],h=arguments[3],u=Math.min(a.x,h.x),_=Math.max(a.x,h.x),w=Math.min(i.x,r.x),S=Math.max(i.x,r.x);return!(w>_||S_)||Sn?(this._intLineIndex[e][0]=0,this._intLineIndex[e][1]=1):(this._intLineIndex[e][0]=1,this._intLineIndex[e][1]=0)}};yi.prototype.isProper=function(){return this.hasIntersection()&&this._isProper};yi.prototype.setPrecisionModel=function(e){this._precisionModel=e};yi.prototype.isInteriorIntersection=function(){var e=this;if(arguments.length===0)return!!(this.isInteriorIntersection(0)||this.isInteriorIntersection(1));if(arguments.length===1){for(var t=arguments[0],n=0;nr?a=i:a=r;else{var h=Math.abs(e.x-t.x),u=Math.abs(e.y-t.y);i>r?a=h:a=u,a===0&&!e.equals(t)&&(a=Math.max(h,u))}return fn.isTrue(!(a===0&&!e.equals(t)),"Bad distance calculation"),a};yi.nonRobustComputeEdgeDistance=function(e,t,n){var i=e.x-t.x,r=e.y-t.y,a=Math.sqrt(i*i+r*r);return fn.isTrue(!(a===0&&!e.equals(t)),"Invalid distance calculation"),a};Nc.DONT_INTERSECT.get=function(){return 0};Nc.DO_INTERSECT.get=function(){return 1};Nc.COLLINEAR.get=function(){return 2};Nc.NO_INTERSECTION.get=function(){return 0};Nc.POINT_INTERSECTION.get=function(){return 1};Nc.COLLINEAR_INTERSECTION.get=function(){return 2};Object.defineProperties(yi,Nc);var Fu=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.isInSegmentEnvelopes=function(n){var i=new Oe(this._inputLines[0][0],this._inputLines[0][1]),r=new Oe(this._inputLines[1][0],this._inputLines[1][1]);return i.contains(n)&&r.contains(n)},t.prototype.computeIntersection=function(){if(arguments.length===3){var n=arguments[0],i=arguments[1],r=arguments[2];if(this._isProper=!1,Oe.intersects(i,r,n)&&we.orientationIndex(i,r,n)===0&&we.orientationIndex(r,i,n)===0)return this._isProper=!0,(n.equals(i)||n.equals(r))&&(this._isProper=!1),this._result=e.POINT_INTERSECTION,null;this._result=e.NO_INTERSECTION}else return e.prototype.computeIntersection.apply(this,arguments)},t.prototype.normalizeToMinimum=function(n,i,r,a,h){h.x=this.smallestInAbsValue(n.x,i.x,r.x,a.x),h.y=this.smallestInAbsValue(n.y,i.y,r.y,a.y),n.x-=h.x,n.y-=h.y,i.x-=h.x,i.y-=h.y,r.x-=h.x,r.y-=h.y,a.x-=h.x,a.y-=h.y},t.prototype.safeHCoordinateIntersection=function(n,i,r,a){var h=null;try{h=ks.intersection(n,i,r,a)}catch(u){if(u instanceof yf)h=t.nearestEndpoint(n,i,r,a);else throw u}finally{}return h},t.prototype.intersection=function(n,i,r,a){var h=this.intersectionWithNormalization(n,i,r,a);return this.isInSegmentEnvelopes(h)||(h=new Rt(t.nearestEndpoint(n,i,r,a))),this._precisionModel!==null&&this._precisionModel.makePrecise(h),h},t.prototype.smallestInAbsValue=function(n,i,r,a){var h=n,u=Math.abs(h);return Math.abs(i)1e-4&&Mr.out.println("Distance = "+h.distance(u))},t.prototype.intersectionWithNormalization=function(n,i,r,a){var h=new Rt(n),u=new Rt(i),_=new Rt(r),w=new Rt(a),S=new Rt;this.normalizeToEnvCentre(h,u,_,w,S);var E=this.safeHCoordinateIntersection(h,u,_,w);return E.x+=S.x,E.y+=S.y,E},t.prototype.computeCollinearIntersection=function(n,i,r,a){var h=Oe.intersects(n,i,r),u=Oe.intersects(n,i,a),_=Oe.intersects(r,a,n),w=Oe.intersects(r,a,i);return h&&u?(this._intPt[0]=r,this._intPt[1]=a,e.COLLINEAR_INTERSECTION):_&&w?(this._intPt[0]=n,this._intPt[1]=i,e.COLLINEAR_INTERSECTION):h&&_?(this._intPt[0]=r,this._intPt[1]=n,r.equals(n)&&!u&&!w?e.POINT_INTERSECTION:e.COLLINEAR_INTERSECTION):h&&w?(this._intPt[0]=r,this._intPt[1]=i,r.equals(i)&&!u&&!_?e.POINT_INTERSECTION:e.COLLINEAR_INTERSECTION):u&&_?(this._intPt[0]=a,this._intPt[1]=n,a.equals(n)&&!h&&!w?e.POINT_INTERSECTION:e.COLLINEAR_INTERSECTION):u&&w?(this._intPt[0]=a,this._intPt[1]=i,a.equals(i)&&!h&&!_?e.POINT_INTERSECTION:e.COLLINEAR_INTERSECTION):e.NO_INTERSECTION},t.prototype.normalizeToEnvCentre=function(n,i,r,a,h){var u=n.xi.x?n.x:i.x,S=n.y>i.y?n.y:i.y,E=r.xa.x?r.x:a.x,D=r.y>a.y?r.y:a.y,O=u>E?u:E,F=wM?_:M,V=S0&&u>0||h<0&&u<0)return e.NO_INTERSECTION;var _=we.orientationIndex(r,a,n),w=we.orientationIndex(r,a,i);if(_>0&&w>0||_<0&&w<0)return e.NO_INTERSECTION;var S=h===0&&u===0&&_===0&&w===0;return S?this.computeCollinearIntersection(n,i,r,a):(h===0||u===0||_===0||w===0?(this._isProper=!1,n.equals2D(r)||n.equals2D(a)?this._intPt[0]=n:i.equals2D(r)||i.equals2D(a)?this._intPt[0]=i:h===0?this._intPt[0]=new Rt(r):u===0?this._intPt[0]=new Rt(a):_===0?this._intPt[0]=new Rt(n):w===0&&(this._intPt[0]=new Rt(i))):(this._isProper=!0,this._intPt[0]=this.intersection(n,i,r,a)),e.POINT_INTERSECTION)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t.nearestEndpoint=function(n,i,r,a){var h=n,u=we.distancePointLine(n,r,a),_=we.distancePointLine(i,r,a);return _0?n>0?-r:r:n>0?r:-r;if(t===0||n===0)return i>0?e>0?r:-r:e>0?-r:r;if(t>0?i>0?t<=i||(r=-r,a=e,e=n,n=a,a=t,t=i,i=a):t<=-i?(r=-r,n=-n,i=-i):(a=e,e=-n,n=a,a=t,t=-i,i=a):i>0?-t<=i?(r=-r,e=-e,t=-t):(a=-e,e=n,n=a,a=-t,t=i,i=a):t>=i?(e=-e,t=-t,n=-n,i=-i):(r=-r,a=-e,e=-n,n=a,a=-t,t=-i,i=a),e>0)if(n>0){if(!(e<=n))return r}else return r;else{if(n>0)return-r;if(e>=n)r=-r,e=-e,n=-n;else return-r}for(;;){if(h=Math.floor(n/e),n=n-h*e,i=i-h*t,i<0)return-r;if(i>t)return r;if(e>n+n){if(ti+i)return-r;n=e-n,i=t-i,r=-r}if(i===0)return n===0?0:-r;if(n===0||(h=Math.floor(e/n),e=e-h*n,t=t-h*i,t<0))return r;if(t>i)return-r;if(n>e+e){if(it+t)return r;e=n-e,t=i-t,r=-r}if(t===0)return e===0?0:r;if(e===0)return-r}};var ra=function(){this._p=null,this._crossingCount=0,this._isPointOnSegment=!1;var e=arguments[0];this._p=e};ra.prototype.countSegment=function(e,t){if(e.xi&&(n=t.x,i=e.x),this._p.x>=n&&this._p.x<=i&&(this._isPointOnSegment=!0),null}if(e.y>this._p.y&&t.y<=this._p.y||t.y>this._p.y&&e.y<=this._p.y){var r=e.x-this._p.x,a=e.y-this._p.y,h=t.x-this._p.x,u=t.y-this._p.y,_=xc.signOfDet2x2(r,a,h,u);if(_===0)return this._isPointOnSegment=!0,null;u0&&this._crossingCount++}};ra.prototype.isPointInPolygon=function(){return this.getLocation()!==Ot.EXTERIOR};ra.prototype.getLocation=function(){return this._isPointOnSegment?Ot.BOUNDARY:this._crossingCount%2===1?Ot.INTERIOR:Ot.EXTERIOR};ra.prototype.isOnSegment=function(){return this._isPointOnSegment};ra.prototype.interfaces_=function(){return[]};ra.prototype.getClass=function(){return ra};ra.locatePointInRing=function(){if(arguments[0]instanceof Rt&&We(arguments[1],Pn)){for(var e=arguments[0],t=arguments[1],n=new ra(e),i=new Rt,r=new Rt,a=1;a1||_<0||_>1)&&(r=!0)}}return r?Ko.min(we.distancePointLine(e,n,i),we.distancePointLine(t,n,i),we.distancePointLine(n,e,t),we.distancePointLine(i,e,t)):0};we.isPointInRing=function(e,t){return we.locatePointInRing(e,t)!==Ot.EXTERIOR};we.computeLength=function(e){var t=e.size();if(t<=1)return 0;var n=0,i=new Rt;e.getCoordinate(0,i);for(var r=i.x,a=i.y,h=1;hn.y&&(n=a,i=r)}var h=i;do h=h-1,h<0&&(h=t);while(e[h].equals2D(n)&&h!==i);var u=i;do u=(u+1)%t;while(e[u].equals2D(n)&&u!==i);var _=e[h],w=e[u];if(_.equals2D(n)||w.equals2D(n)||_.equals2D(w))return!1;var S=we.computeOrientation(_,n,w),E=!1;return S===0?E=_.x>w.x:E=S>0,E};we.locatePointInRing=function(e,t){return ra.locatePointInRing(e,t)};we.distancePointLinePerpendicular=function(e,t,n){var i=(n.x-t.x)*(n.x-t.x)+(n.y-t.y)*(n.y-t.y),r=((t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y))/i;return Math.abs(r)*Math.sqrt(i)};we.computeOrientation=function(e,t,n){return we.orientationIndex(e,t,n)};we.distancePointLine=function(){if(arguments.length===2){var e=arguments[0],t=arguments[1];if(t.length===0)throw new pi("Line array must contain at least one vertex");for(var n=e.distance(t[0]),i=0;i=1)return a.distance(u);var S=((h.y-a.y)*(u.x-h.x)-(h.x-a.x)*(u.y-h.y))/_;return Math.abs(S)*Math.sqrt(_)}};we.isOnLine=function(e,t){for(var n=new Fu,i=1;i0};Kh.prototype.interfaces_=function(){return[ds]};Kh.prototype.getClass=function(){return Kh};var Jh=function(){};Jh.prototype.isInBoundary=function(e){return e>1};Jh.prototype.interfaces_=function(){return[ds]};Jh.prototype.getClass=function(){return Jh};var Qh=function(){};Qh.prototype.isInBoundary=function(e){return e===1};Qh.prototype.interfaces_=function(){return[ds]};Qh.prototype.getClass=function(){return Qh};var Hi=function(){};Hi.prototype.add=function(){};Hi.prototype.addAll=function(){};Hi.prototype.isEmpty=function(){};Hi.prototype.iterator=function(){};Hi.prototype.size=function(){};Hi.prototype.toArray=function(){};Hi.prototype.remove=function(){};function qy(e){this.message=e||""}qy.prototype=new Error;qy.prototype.name="IndexOutOfBoundsException";var vf=function(){};vf.prototype.hasNext=function(){};vf.prototype.next=function(){};vf.prototype.remove=function(){};var As=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.get=function(){},t.prototype.set=function(){},t.prototype.isEmpty=function(){},t}(Hi);function bf(e){this.message=e||""}bf.prototype=new Error;bf.prototype.name="NoSuchElementException";var _e=function(e){function t(){e.call(this),this.array_=[],arguments[0]instanceof Hi&&this.addAll(arguments[0])}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.ensureCapacity=function(){},t.prototype.interfaces_=function(){return[e,Hi]},t.prototype.add=function(n){return arguments.length===1?this.array_.push(n):this.array_.splice(arguments[0],arguments[1]),!0},t.prototype.clear=function(){this.array_=[]},t.prototype.addAll=function(n){for(var i=this,r=n.iterator();r.hasNext();)i.add(r.next());return!0},t.prototype.set=function(n,i){var r=this.array_[n];return this.array_[n]=i,r},t.prototype.iterator=function(){return new iE(this)},t.prototype.get=function(n){if(n<0||n>=this.size())throw new qy;return this.array_[n]},t.prototype.isEmpty=function(){return this.array_.length===0},t.prototype.size=function(){return this.array_.length},t.prototype.toArray=function(){for(var n=this,i=[],r=0,a=this.array_.length;r=1){var w=this.get(this.size()-1);if(w.equals2D(u))return null}e.prototype.add.call(this,u)}else if(arguments[0]instanceof Object&&typeof arguments[1]=="boolean"){var S=arguments[0],E=arguments[1];return this.add(S,E),!0}}else if(arguments.length===3){if(typeof arguments[2]=="boolean"&&arguments[0]instanceof Array&&typeof arguments[1]=="boolean"){var M=arguments[0],A=arguments[1],D=arguments[2];if(D)for(var O=0;O=0;F--)i.add(M[F],A);return!0}else if(typeof arguments[2]=="boolean"&&Number.isInteger(arguments[0])&&arguments[1]instanceof Rt){var G=arguments[0],V=arguments[1],Z=arguments[2];if(!Z){var $=this.size();if($>0){if(G>0){var Q=this.get(G-1);if(Q.equals2D(V))return null}if(G<$){var pt=this.get(G);if(pt.equals2D(V))return null}}}e.prototype.add.call(this,G,V)}}else if(arguments.length===4){var st=arguments[0],St=arguments[1],ut=arguments[2],kt=arguments[3],mt=1;ut>kt&&(mt=-1);for(var Et=ut;Et!==kt;Et+=mt)i.add(st[Et],St);return!0}},t.prototype.closeRing=function(){this.size()>0&&this.add(new Rt(this.get(0)),!1)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},Object.defineProperties(t,n),t}(_e),xn=function(){},Mg={ForwardComparator:{configurable:!0},BidirectionalComparator:{configurable:!0},coordArrayType:{configurable:!0}};Mg.ForwardComparator.get=function(){return Kp};Mg.BidirectionalComparator.get=function(){return tf};Mg.coordArrayType.get=function(){return new Array(0).fill(null)};xn.prototype.interfaces_=function(){return[]};xn.prototype.getClass=function(){return xn};xn.isRing=function(e){return!(e.length<4||!e[0].equals2D(e[e.length-1]))};xn.ptNotInList=function(e,t){for(var n=0;n=e?t:[]};xn.indexOf=function(e,t){for(var n=0;n0)&&(t=e[n]);return t};xn.extract=function(e,t,n){t=Ko.clamp(t,0,e.length),n=Ko.clamp(n,-1,e.length);var i=n-t+1;n<0&&(i=0),t>=e.length&&(i=0),ni.length)return 1;if(n.length===0)return 0;var r=xn.compare(n,i),a=xn.isEqualReversed(n,i);return a?0:r};tf.prototype.OLDcompare=function(e,t){var n=e,i=t;if(n.lengthi.length)return 1;if(n.length===0)return 0;for(var r=xn.increasingDirection(n),a=xn.increasingDirection(i),h=r>0?0:n.length-1,u=a>0?0:n.length-1,_=0;_0)t=t.right;else return t.value}return null};Br.prototype.put=function(e,t){if(this.root_===null)return this.root_={key:e,value:t,left:null,right:null,parent:null,color:sl,getValue:function(){return this.value},getKey:function(){return this.key}},this.size_=1,null;var n=this.root_,i,r;do if(i=n,r=e.compareTo(n.key),r<0)n=n.left;else if(r>0)n=n.right;else{var a=n.value;return n.value=t,a}while(n!==null);var h={key:e,left:null,right:null,value:t,parent:i,color:sl,getValue:function(){return this.value},getKey:function(){return this.key}};return r<0?i.left=h:i.right=h,this.fixAfterInsertion(h),this.size_++,null};Br.prototype.fixAfterInsertion=function(e){var t=this;for(e.color=yu;e!=null&&e!==this.root_&&e.parent.color===yu;)if(Jn(e)===Q_(Jn(Jn(e)))){var n=p1(Jn(Jn(e)));f1(n)===yu?(el(Jn(e),sl),el(n,sl),el(Jn(Jn(e)),yu),e=Jn(Jn(e))):(e===p1(Jn(e))&&(e=Jn(e),t.rotateLeft(e)),el(Jn(e),sl),el(Jn(Jn(e)),yu),t.rotateRight(Jn(Jn(e))))}else{var i=Q_(Jn(Jn(e)));f1(i)===yu?(el(Jn(e),sl),el(i,sl),el(Jn(Jn(e)),yu),e=Jn(Jn(e))):(e===Q_(Jn(e))&&(e=Jn(e),t.rotateRight(e)),el(Jn(e),sl),el(Jn(Jn(e)),yu),t.rotateLeft(Jn(Jn(e))))}this.root_.color=sl};Br.prototype.values=function(){var e=new _e,t=this.getFirstEntry();if(t!==null)for(e.add(t.value);(t=Br.successor(t))!==null;)e.add(t.value);return e};Br.prototype.entrySet=function(){var e=new Zy,t=this.getFirstEntry();if(t!==null)for(e.add(t);(t=Br.successor(t))!==null;)e.add(t);return e};Br.prototype.rotateLeft=function(e){if(e!=null){var t=e.right;e.right=t.left,t.left!=null&&(t.left.parent=e),t.parent=e.parent,e.parent===null?this.root_=t:e.parent.left===e?e.parent.left=t:e.parent.right=t,t.left=e,e.parent=t}};Br.prototype.rotateRight=function(e){if(e!=null){var t=e.left;e.left=t.right,t.right!=null&&(t.right.parent=e),t.parent=e.parent,e.parent===null?this.root_=t:e.parent.right===e?e.parent.right=t:e.parent.left=t,t.right=e,e.parent=t}};Br.prototype.getFirstEntry=function(){var e=this.root_;if(e!=null)for(;e.left!=null;)e=e.left;return e};Br.successor=function(e){if(e===null)return null;if(e.right!==null){for(var t=e.right;t.left!==null;)t=t.left;return t}else{for(var n=e.parent,i=e;n!==null&&i===n.right;)i=n,n=n.parent;return n}};Br.prototype.size=function(){return this.size_};var Jp=function(){};Jp.prototype.interfaces_=function(){return[]};Jp.prototype.getClass=function(){return Jp};function Rx(){}Rx.prototype=new Pg;function aa(){this.array_=[],arguments[0]instanceof Hi&&this.addAll(arguments[0])}aa.prototype=new Rx;aa.prototype.contains=function(e){for(var t=this,n=0,i=this.array_.length;n=0;){var h=r.substring(0,a);i.add(h),r=r.substring(a+n),a=r.indexOf(t)}r.length>0&&i.add(r);for(var u=new Array(i.size()).fill(null),_=0;_0)for(var a=r;a0&&i.append(" ");for(var a=0;a0&&i.append(","),i.append(cs.toString(e.getOrdinate(r,a)))}return i.append(")"),i.toString()}};Oi.ensureValidRing=function(e,t){var n=t.size();if(n===0)return t;if(n<=3)return Oi.createClosedRing(e,t,4);var i=t.getOrdinate(0,Pn.X)===t.getOrdinate(n-1,Pn.X)&&t.getOrdinate(0,Pn.Y)===t.getOrdinate(n-1,Pn.Y);return i?t:Oi.createClosedRing(e,t,n+1)};Oi.createClosedRing=function(e,t,n){var i=e.create(n,t.getDimension()),r=t.size();Oi.copy(t,0,i,0,r);for(var a=r;a0&&Oi.reverse(i._points),null}},t.prototype.getCoordinate=function(){return this.isEmpty()?null:this._points.getCoordinate(0)},t.prototype.getBoundaryDimension=function(){return this.isClosed()?Rn.FALSE:0},t.prototype.isClosed=function(){return this.isEmpty()?!1:this.getCoordinateN(0).equals2D(this.getCoordinateN(this.getNumPoints()-1))},t.prototype.getEndPoint=function(){return this.isEmpty()?null:this.getPointN(this.getNumPoints()-1)},t.prototype.getDimension=function(){return 1},t.prototype.getLength=function(){return we.computeLength(this._points)},t.prototype.getNumPoints=function(){return this._points.size()},t.prototype.reverse=function(){var i=this._points.copy();Oi.reverse(i);var r=this.getFactory().createLineString(i);return r},t.prototype.compareToSameClass=function(){var i=this;if(arguments.length===1){for(var r=arguments[0],a=r,h=0,u=0;h= 2)");this._points=i},t.prototype.isCoordinate=function(i){for(var r=this,a=0;a=1&&this.getCoordinateSequence().size()= 4)")},t.prototype.getGeometryType=function(){return"LinearRing"},t.prototype.copy=function(){return new t(this._points.copy(),this._factory)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},n.MINIMUM_VALID_SIZE.get=function(){return 4},n.serialVersionUID.get=function(){return-0x3b229e262367a600},Object.defineProperties(t,n),t}(Li),ka=function(e){function t(){e.apply(this,arguments)}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var n={serialVersionUID:{configurable:!0}};return t.prototype.getSortIndex=function(){return qe.SORTINDEX_MULTIPOLYGON},t.prototype.equalsExact=function(){if(arguments.length===2){var i=arguments[0],r=arguments[1];return this.isEquivalentClass(i)?e.prototype.equalsExact.call(this,i,r):!1}else return e.prototype.equalsExact.apply(this,arguments)},t.prototype.getBoundaryDimension=function(){return 1},t.prototype.getDimension=function(){return 2},t.prototype.reverse=function(){for(var i=this,r=this._geometries.length,a=new Array(r).fill(null),h=0;h0?t.createPoint(n[0]):t.createPoint():e};ed.prototype.interfaces_=function(){return[ms.GeometryEditorOperation]};ed.prototype.getClass=function(){return ed};var nd=function(){};nd.prototype.edit=function(e,t){return e instanceof Ra?t.createLinearRing(this.edit(e.getCoordinateSequence(),e)):e instanceof Li?t.createLineString(this.edit(e.getCoordinateSequence(),e)):e instanceof Lo?t.createPoint(this.edit(e.getCoordinateSequence(),e)):e};nd.prototype.interfaces_=function(){return[ms.GeometryEditorOperation]};nd.prototype.getClass=function(){return nd};var Ri=function(){var e=this;if(this._dimension=3,this._coordinates=null,arguments.length===1){if(arguments[0]instanceof Array)this._coordinates=arguments[0],this._dimension=3;else if(Number.isInteger(arguments[0])){var t=arguments[0];this._coordinates=new Array(t).fill(null);for(var n=0;n0){var t=new ya(17*this._coordinates.length);t.append("("),t.append(this._coordinates[0]);for(var n=1;n3&&(i=3),i<2?new Ri(n):new Ri(n,i)}};Na.prototype.interfaces_=function(){return[$h,ys]};Na.prototype.getClass=function(){return Na};Na.instance=function(){return Na.instanceObject};Hy.serialVersionUID.get=function(){return-0x38e49fa6cf6f2e00};Hy.instanceObject.get=function(){return new Na};Object.defineProperties(Na,Hy);var Ox=function(e){function t(){e.call(this),this.map_=new Map}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.get=function(n){return this.map_.get(n)||null},t.prototype.put=function(n,i){return this.map_.set(n,i),i},t.prototype.values=function(){for(var n=new _e,i=this.map_.values(),r=i.next();!r.done;)n.add(r.value),r=i.next();return n},t.prototype.entrySet=function(){var n=new Zy;return this.map_.entries().forEach(function(i){return n.add(i)}),n},t.prototype.size=function(){return this.map_.size()},t}(zc),On=function e(){if(this._modelType=null,this._scale=null,arguments.length===0)this._modelType=e.FLOATING;else if(arguments.length===1){if(arguments[0]instanceof ua){var t=arguments[0];this._modelType=t,t===e.FIXED&&this.setScale(1)}else if(typeof arguments[0]=="number"){var n=arguments[0];this._modelType=e.FIXED,this.setScale(n)}else if(arguments[0]instanceof e){var i=arguments[0];this._modelType=i._modelType,this._scale=i._scale}}},Xy={serialVersionUID:{configurable:!0},maximumPreciseValue:{configurable:!0}};On.prototype.equals=function(e){if(!(e instanceof On))return!1;var t=e;return this._modelType===t._modelType&&this._scale===t._scale};On.prototype.compareTo=function(e){var t=e,n=this.getMaximumSignificantDigits(),i=t.getMaximumSignificantDigits();return new sa(n).compareTo(new sa(i))};On.prototype.getScale=function(){return this._scale};On.prototype.isFloating=function(){return this._modelType===On.FLOATING||this._modelType===On.FLOATING_SINGLE};On.prototype.getType=function(){return this._modelType};On.prototype.toString=function(){var e="UNKNOWN";return this._modelType===On.FLOATING?e="Floating":this._modelType===On.FLOATING_SINGLE?e="Floating-Single":this._modelType===On.FIXED&&(e="Fixed (Scale="+this.getScale()+")"),e};On.prototype.makePrecise=function(){if(typeof arguments[0]=="number"){var e=arguments[0];if(on.isNaN(e))return e;if(this._modelType===On.FLOATING_SINGLE){var t=e;return t}return this._modelType===On.FIXED?Math.round(e*this._scale)/this._scale:e}else if(arguments[0]instanceof Rt){var n=arguments[0];if(this._modelType===On.FLOATING)return null;n.x=this.makePrecise(n.x),n.y=this.makePrecise(n.y)}};On.prototype.getMaximumSignificantDigits=function(){var e=16;return this._modelType===On.FLOATING?e=16:this._modelType===On.FLOATING_SINGLE?e=6:this._modelType===On.FIXED&&(e=1+Math.trunc(Math.ceil(Math.log(this.getScale())/Math.log(10)))),e};On.prototype.setScale=function(e){this._scale=Math.abs(e)};On.prototype.interfaces_=function(){return[ys,_s]};On.prototype.getClass=function(){return On};On.mostPrecise=function(e,t){return e.compareTo(t)>=0?e:t};Xy.serialVersionUID.get=function(){return 7777263578777804e3};Xy.maximumPreciseValue.get=function(){return 9007199254740992};Object.defineProperties(On,Xy);var ua=function e(t){this._name=t||null,e.nameToTypeMap.put(t,this)},$y={serialVersionUID:{configurable:!0},nameToTypeMap:{configurable:!0}};ua.prototype.readResolve=function(){return ua.nameToTypeMap.get(this._name)};ua.prototype.toString=function(){return this._name};ua.prototype.interfaces_=function(){return[ys]};ua.prototype.getClass=function(){return ua};$y.serialVersionUID.get=function(){return-552860263173159e4};$y.nameToTypeMap.get=function(){return new Ox};Object.defineProperties(ua,$y);On.Type=ua;On.FIXED=new ua("FIXED");On.FLOATING=new ua("FLOATING");On.FLOATING_SINGLE=new ua("FLOATING SINGLE");var bn=function e(){this._precisionModel=new On,this._SRID=0,this._coordinateSequenceFactory=e.getDefaultCoordinateSequenceFactory(),arguments.length===0||(arguments.length===1?We(arguments[0],$h)?this._coordinateSequenceFactory=arguments[0]:arguments[0]instanceof On&&(this._precisionModel=arguments[0]):arguments.length===2?(this._precisionModel=arguments[0],this._SRID=arguments[1]):arguments.length===3&&(this._precisionModel=arguments[0],this._SRID=arguments[1],this._coordinateSequenceFactory=arguments[2]))},zx={serialVersionUID:{configurable:!0}};bn.prototype.toGeometry=function(e){return e.isNull()?this.createPoint(null):e.getMinX()===e.getMaxX()&&e.getMinY()===e.getMaxY()?this.createPoint(new Rt(e.getMinX(),e.getMinY())):e.getMinX()===e.getMaxX()||e.getMinY()===e.getMaxY()?this.createLineString([new Rt(e.getMinX(),e.getMinY()),new Rt(e.getMaxX(),e.getMaxY())]):this.createPolygon(this.createLinearRing([new Rt(e.getMinX(),e.getMinY()),new Rt(e.getMinX(),e.getMaxY()),new Rt(e.getMaxX(),e.getMaxY()),new Rt(e.getMaxX(),e.getMinY()),new Rt(e.getMinX(),e.getMinY())]),null)};bn.prototype.createLineString=function(e){if(e){if(e instanceof Array)return new Li(this.getCoordinateSequenceFactory().create(e),this);if(We(e,Pn))return new Li(e,this)}else return new Li(this.getCoordinateSequenceFactory().create([]),this)};bn.prototype.createMultiLineString=function(){if(arguments.length===0)return new Tu(null,this);if(arguments.length===1){var e=arguments[0];return new Tu(e,this)}};bn.prototype.buildGeometry=function(e){for(var t=null,n=!1,i=!1,r=e.iterator();r.hasNext();){var a=r.next(),h=a.getClass();t===null&&(t=h),h!==t&&(n=!0),a.isGeometryCollectionOrDerived()&&(i=!0)}if(t===null)return this.createGeometryCollection();if(n||i)return this.createGeometryCollection(bn.toGeometryArray(e));var u=e.iterator().next(),_=e.size()>1;if(_){if(u instanceof Ki)return this.createMultiPolygon(bn.toPolygonArray(e));if(u instanceof Li)return this.createMultiLineString(bn.toLineStringArray(e));if(u instanceof Lo)return this.createMultiPoint(bn.toPointArray(e));fn.shouldNeverReachHere("Unhandled class: "+u.getClass().getName())}return u};bn.prototype.createMultiPointFromCoords=function(e){return this.createMultiPoint(e!==null?this.getCoordinateSequenceFactory().create(e):null)};bn.prototype.createPoint=function(){if(arguments.length===0)return this.createPoint(this.getCoordinateSequenceFactory().create([]));if(arguments.length===1){if(arguments[0]instanceof Rt){var e=arguments[0];return this.createPoint(e!==null?this.getCoordinateSequenceFactory().create([e]):null)}else if(We(arguments[0],Pn)){var t=arguments[0];return new Lo(t,this)}}};bn.prototype.getCoordinateSequenceFactory=function(){return this._coordinateSequenceFactory};bn.prototype.createPolygon=function(){if(arguments.length===0)return new Ki(null,null,this);if(arguments.length===1){if(We(arguments[0],Pn)){var e=arguments[0];return this.createPolygon(this.createLinearRing(e))}else if(arguments[0]instanceof Array){var t=arguments[0];return this.createPolygon(this.createLinearRing(t))}else if(arguments[0]instanceof Ra){var n=arguments[0];return this.createPolygon(n,null)}}else if(arguments.length===2){var i=arguments[0],r=arguments[1];return new Ki(i,r,this)}};bn.prototype.getSRID=function(){return this._SRID};bn.prototype.createGeometryCollection=function(){if(arguments.length===0)return new Kr(null,this);if(arguments.length===1){var e=arguments[0];return new Kr(e,this)}};bn.prototype.createGeometry=function(e){var t=new ms(this);return t.edit(e,{edit:function(){if(arguments.length===2){var n=arguments[0];return this._coordinateSequenceFactory.create(n)}}})};bn.prototype.getPrecisionModel=function(){return this._precisionModel};bn.prototype.createLinearRing=function(){if(arguments.length===0)return this.createLinearRing(this.getCoordinateSequenceFactory().create([]));if(arguments.length===1){if(arguments[0]instanceof Array){var e=arguments[0];return this.createLinearRing(e!==null?this.getCoordinateSequenceFactory().create(e):null)}else if(We(arguments[0],Pn)){var t=arguments[0];return new Ra(t,this)}}};bn.prototype.createMultiPolygon=function(){if(arguments.length===0)return new ka(null,this);if(arguments.length===1){var e=arguments[0];return new ka(e,this)}};bn.prototype.createMultiPoint=function(){var e=this;if(arguments.length===0)return new ef(null,this);if(arguments.length===1){if(arguments[0]instanceof Array){var t=arguments[0];return new ef(t,this)}else if(arguments[0]instanceof Array){var n=arguments[0];return this.createMultiPoint(n!==null?this.getCoordinateSequenceFactory().create(n):null)}else if(We(arguments[0],Pn)){var i=arguments[0];if(i===null)return this.createMultiPoint(new Array(0).fill(null));for(var r=new Array(i.size()).fill(null),a=0;a=this.size())throw new Error;return this.array_[e]};va.prototype.push=function(e){return this.array_.push(e),e};va.prototype.pop=function(e){if(this.array_.length===0)throw new Ng;return this.array_.pop()};va.prototype.peek=function(){if(this.array_.length===0)throw new Ng;return this.array_[this.array_.length-1]};va.prototype.empty=function(){return this.array_.length===0};va.prototype.isEmpty=function(){return this.empty()};va.prototype.search=function(e){return this.array_.indexOf(e)};va.prototype.size=function(){return this.array_.length};va.prototype.toArray=function(){for(var e=this,t=[],n=0,i=this.array_.length;n0&&this._minIndexthis._minCoord.y&&n.y>this._minCoord.y&&i===we.CLOCKWISE)&&(r=!0),r&&(this._minIndex=this._minIndex-1)};ca.prototype.getRightmostSideOfSegment=function(e,t){var n=e.getEdge(),i=n.getCoordinates();if(t<0||t+1>=i.length||i[t].y===i[t+1].y)return-1;var r=ae.LEFT;return i[t].yt._minCoord.x)&&(t._minDe=e,t._minIndex=i,t._minCoord=n[i])};ca.prototype.findRightmostEdgeAtNode=function(){var e=this._minDe.getNode(),t=e.getEdges();this._minDe=t.getRightmostEdge(),this._minDe.isForward()||(this._minDe=this._minDe.getSym(),this._minIndex=this._minDe.getEdge().getCoordinates().length-1)};ca.prototype.findEdge=function(e){for(var t=this,n=e.iterator();n.hasNext();){var i=n.next();i.isForward()&&t.checkForRightmostCoordinate(i)}fn.isTrue(this._minIndex!==0||this._minCoord.equals(this._minDe.getCoordinate()),"inconsistency in rightmost processing"),this._minIndex===0?this.findRightmostEdgeAtNode():this.findRightmostEdgeAtVertex(),this._orientedDe=this._minDe;var r=this.getRightmostSide(this._minDe,this._minIndex);r===ae.LEFT&&(this._orientedDe=this._minDe.getSym())};ca.prototype.interfaces_=function(){return[]};ca.prototype.getClass=function(){return ca};var fl=function(e){function t(n,i){e.call(this,t.msgWithCoord(n,i)),this.pt=i?new Rt(i):null,this.name="TopologyException"}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getCoordinate=function(){return this.pt},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t.msgWithCoord=function(n,i){return i?n:n+" [ "+i+" ]"},t}(cl),Og=function(){this.array_=[]};Og.prototype.addLast=function(e){this.array_.push(e)};Og.prototype.removeFirst=function(){return this.array_.shift()};Og.prototype.isEmpty=function(){return this.array_.length===0};var Jr=function(){this._finder=null,this._dirEdgeList=new _e,this._nodes=new _e,this._rightMostCoord=null,this._env=null,this._finder=new ca};Jr.prototype.clearVisitedEdges=function(){for(var e=this._dirEdgeList.iterator();e.hasNext();){var t=e.next();t.setVisited(!1)}};Jr.prototype.getRightmostCoordinate=function(){return this._rightMostCoord};Jr.prototype.computeNodeDepth=function(e){for(var t=this,n=null,i=e.getEdges().iterator();i.hasNext();){var r=i.next();if(r.isVisited()||r.getSym().isVisited()){n=r;break}}if(n===null)throw new fl("unable to find edge to compute depths at "+e.getCoordinate());e.getEdges().computeDepths(n);for(var a=e.getEdges().iterator();a.hasNext();){var h=a.next();h.setVisited(!0),t.copySymDepths(h)}};Jr.prototype.computeDepth=function(e){this.clearVisitedEdges();var t=this._finder.getEdge();t.setEdgeDepths(ae.RIGHT,e),this.copySymDepths(t),this.computeDepths(t)};Jr.prototype.create=function(e){this.addReachable(e),this._finder.findEdge(this._dirEdgeList),this._rightMostCoord=this._finder.getCoordinate()};Jr.prototype.findResultEdges=function(){for(var e=this._dirEdgeList.iterator();e.hasNext();){var t=e.next();t.getDepth(ae.RIGHT)>=1&&t.getDepth(ae.LEFT)<=0&&!t.isInteriorAreaEdge()&&t.setInResult(!0)}};Jr.prototype.computeDepths=function(e){var t=this,n=new Zy,i=new Og,r=e.getNode();for(i.addLast(r),n.add(r),e.setVisited(!0);!i.isEmpty();){var a=i.removeFirst();n.add(a),t.computeNodeDepth(a);for(var h=a.getEdges().iterator();h.hasNext();){var u=h.next(),_=u.getSym();if(!_.isVisited()){var w=_.getNode();n.contains(w)||(i.addLast(w),n.add(w))}}}};Jr.prototype.compareTo=function(e){var t=e;return this._rightMostCoord.xt._rightMostCoord.x?1:0};Jr.prototype.getEnvelope=function(){if(this._env===null){for(var e=new Oe,t=this._dirEdgeList.iterator();t.hasNext();)for(var n=t.next(),i=n.getEdge().getCoordinates(),r=0;rthis.location.length){var n=new Array(3).fill(null);n[ae.ON]=this.location[ae.ON],n[ae.LEFT]=Ot.NONE,n[ae.RIGHT]=Ot.NONE,this.location=n}for(var i=0;i1&&e.append(Ot.toLocationSymbol(this.location[ae.LEFT])),e.append(Ot.toLocationSymbol(this.location[ae.ON])),this.location.length>1&&e.append(Ot.toLocationSymbol(this.location[ae.RIGHT])),e.toString()};Qn.prototype.setLocations=function(e,t,n){this.location[ae.ON]=e,this.location[ae.LEFT]=t,this.location[ae.RIGHT]=n};Qn.prototype.get=function(e){return e1};Qn.prototype.isAnyNull=function(){for(var e=this,t=0;te._maxNodeDegree&&(e._maxNodeDegree=i),t=e.getNext(t)}while(t!==this._startDe);this._maxNodeDegree*=2};Gi.prototype.addPoints=function(e,t,n){var i=this,r=e.getCoordinates();if(t){var a=1;n&&(a=0);for(var h=a;h=0;_--)i._pts.add(r[_])}};Gi.prototype.isHole=function(){return this._isHole};Gi.prototype.setInResult=function(){var e=this._startDe;do e.getEdge().setInResult(!0),e=e.getNext();while(e!==this._startDe)};Gi.prototype.containsPoint=function(e){var t=this.getLinearRing(),n=t.getEnvelopeInternal();if(!n.contains(e)||!we.isPointInRing(e,t.getCoordinates()))return!1;for(var i=this._holes.iterator();i.hasNext();){var r=i.next();if(r.containsPoint(e))return!1}return!0};Gi.prototype.addHole=function(e){this._holes.add(e)};Gi.prototype.isShell=function(){return this._shell===null};Gi.prototype.getLabel=function(){return this._label};Gi.prototype.getEdges=function(){return this._edges};Gi.prototype.getMaxNodeDegree=function(){return this._maxNodeDegree<0&&this.computeMaxNodeDegree(),this._maxNodeDegree};Gi.prototype.getShell=function(){return this._shell};Gi.prototype.mergeLabel=function(){if(arguments.length===1){var e=arguments[0];this.mergeLabel(e,0),this.mergeLabel(e,1)}else if(arguments.length===2){var t=arguments[0],n=arguments[1],i=t.getLocation(n,ae.RIGHT);if(i===Ot.NONE)return null;if(this._label.getLocation(n)===Ot.NONE)return this._label.setLocation(n,i),null}};Gi.prototype.setShell=function(e){this._shell=e,e!==null&&e.addHole(this)};Gi.prototype.toPolygon=function(e){for(var t=this,n=new Array(this._holes.size()).fill(null),i=0;i=2,"found partial label"),this.computeIM(e)};Jo.prototype.isInResult=function(){return this._isInResult};Jo.prototype.isVisited=function(){return this._isVisited};Jo.prototype.interfaces_=function(){return[]};Jo.prototype.getClass=function(){return Jo};var zg=function(e){function t(){e.call(this),this._coord=null,this._edges=null;var n=arguments[0],i=arguments[1];this._coord=n,this._edges=i,this._label=new Vn(0,Ot.NONE)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.isIncidentEdgeInResult=function(){for(var n=this.getEdges().getEdges().iterator();n.hasNext();){var i=n.next();if(i.getEdge().isInResult())return!0}return!1},t.prototype.isIsolated=function(){return this._label.getGeometryCount()===1},t.prototype.getCoordinate=function(){return this._coord},t.prototype.print=function(n){n.println("node "+this._coord+" lbl: "+this._label)},t.prototype.computeIM=function(n){},t.prototype.computeMergedLocation=function(n,i){var r=Ot.NONE;if(r=this._label.getLocation(i),!n.isNull(i)){var a=n.getLocation(i);r!==Ot.BOUNDARY&&(r=a)}return r},t.prototype.setLabel=function(){if(arguments.length===2){var n=arguments[0],i=arguments[1];this._label===null?this._label=new Vn(n,i):this._label.setLocation(n,i)}else return e.prototype.setLabel.apply(this,arguments)},t.prototype.getEdges=function(){return this._edges},t.prototype.mergeLabel=function(){var n=this;if(arguments[0]instanceof t){var i=arguments[0];this.mergeLabel(i._label)}else if(arguments[0]instanceof Vn)for(var r=arguments[0],a=0;a<2;a++){var h=n.computeMergedLocation(r,a),u=n._label.getLocation(a);u===Ot.NONE&&n._label.setLocation(a,h)}},t.prototype.add=function(n){this._edges.insert(n),n.setNode(this)},t.prototype.setLabelBoundary=function(n){if(this._label===null)return null;var i=Ot.NONE;this._label!==null&&(i=this._label.getLocation(n));var r=null;switch(i){case Ot.BOUNDARY:r=Ot.INTERIOR;break;case Ot.INTERIOR:r=Ot.BOUNDARY;break;default:r=Ot.BOUNDARY;break}this._label.setLocation(n,r)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(Jo),ha=function(){this.nodeMap=new Br,this.nodeFact=null;var e=arguments[0];this.nodeFact=e};ha.prototype.find=function(e){return this.nodeMap.get(e)};ha.prototype.addNode=function(){if(arguments[0]instanceof Rt){var e=arguments[0],t=this.nodeMap.get(e);return t===null&&(t=this.nodeFact.createNode(e),this.nodeMap.put(e,t)),t}else if(arguments[0]instanceof zg){var n=arguments[0],i=this.nodeMap.get(n.getCoordinate());return i===null?(this.nodeMap.put(n.getCoordinate(),n),n):(i.mergeLabel(n),i)}};ha.prototype.print=function(e){for(var t=this.iterator();t.hasNext();){var n=t.next();n.print(e)}};ha.prototype.iterator=function(){return this.nodeMap.values().iterator()};ha.prototype.values=function(){return this.nodeMap.values()};ha.prototype.getBoundaryNodes=function(e){for(var t=new _e,n=this.iterator();n.hasNext();){var i=n.next();i.getLabel().getLocation(e)===Ot.BOUNDARY&&t.add(i)}return t};ha.prototype.add=function(e){var t=e.getCoordinate(),n=this.addNode(t);n.add(e)};ha.prototype.interfaces_=function(){return[]};ha.prototype.getClass=function(){return ha};var Gn=function(){},vd={NE:{configurable:!0},NW:{configurable:!0},SW:{configurable:!0},SE:{configurable:!0}};Gn.prototype.interfaces_=function(){return[]};Gn.prototype.getClass=function(){return Gn};Gn.isNorthern=function(e){return e===Gn.NE||e===Gn.NW};Gn.isOpposite=function(e,t){if(e===t)return!1;var n=(e-t+4)%4;return n===2};Gn.commonHalfPlane=function(e,t){if(e===t)return e;var n=(e-t+4)%4;if(n===2)return-1;var i=et?e:t;return i===0&&r===3?3:i};Gn.isInHalfPlane=function(e,t){return t===Gn.SE?e===Gn.SE||e===Gn.SW:e===t||e===t+1};Gn.quadrant=function(){if(typeof arguments[0]=="number"&&typeof arguments[1]=="number"){var e=arguments[0],t=arguments[1];if(e===0&&t===0)throw new pi("Cannot compute the quadrant for point ( "+e+", "+t+" )");return e>=0?t>=0?Gn.NE:Gn.SE:t>=0?Gn.NW:Gn.SW}else if(arguments[0]instanceof Rt&&arguments[1]instanceof Rt){var n=arguments[0],i=arguments[1];if(i.x===n.x&&i.y===n.y)throw new pi("Cannot compute the quadrant for two identical points "+n);return i.x>=n.x?i.y>=n.y?Gn.NE:Gn.SE:i.y>=n.y?Gn.NW:Gn.SW}};vd.NE.get=function(){return 0};vd.NW.get=function(){return 1};vd.SW.get=function(){return 2};vd.SE.get=function(){return 3};Object.defineProperties(Gn,vd);var Vr=function(){if(this._edge=null,this._label=null,this._node=null,this._p0=null,this._p1=null,this._dx=null,this._dy=null,this._quadrant=null,arguments.length===1){var e=arguments[0];this._edge=e}else if(arguments.length===3){var t=arguments[0],n=arguments[1],i=arguments[2],r=null;this._edge=t,this.init(n,i),this._label=r}else if(arguments.length===4){var a=arguments[0],h=arguments[1],u=arguments[2],_=arguments[3];this._edge=a,this.init(h,u),this._label=_}};Vr.prototype.compareDirection=function(e){return this._dx===e._dx&&this._dy===e._dy?0:this._quadrant>e._quadrant?1:this._quadrant2){h.linkDirectedEdgesForMinimalEdgeRings();var u=h.buildMinimalRings(),_=i.findShell(u);_!==null?(i.placePolygonHoles(_,u),t.add(_)):n.addAll(u)}else r.add(h)}return r};Mo.prototype.containsPoint=function(e){for(var t=this._shellList.iterator();t.hasNext();){var n=t.next();if(n.containsPoint(e))return!0}return!1};Mo.prototype.buildMaximalEdgeRings=function(e){for(var t=this,n=new _e,i=e.iterator();i.hasNext();){var r=i.next();if(r.isInResult()&&r.getLabel().isArea()&&r.getEdgeRing()===null){var a=new dE(r,t._geometryFactory);n.add(a),a.setInResult()}}return n};Mo.prototype.placePolygonHoles=function(e,t){for(var n=t.iterator();n.hasNext();){var i=n.next();i.isHole()&&i.setShell(e)}};Mo.prototype.getPolygons=function(){var e=this.computePolygons(this._shellList);return e};Mo.prototype.findEdgeRingContaining=function(e,t){for(var n=e.getLinearRing(),i=n.getEnvelopeInternal(),r=n.getCoordinateN(0),a=null,h=null,u=t.iterator();u.hasNext();){var _=u.next(),w=_.getLinearRing(),S=w.getEnvelopeInternal();a!==null&&(h=a.getLinearRing().getEnvelopeInternal());var E=!1;S.contains(i)&&we.isPointInRing(r,w.getCoordinates())&&(E=!0),E&&(a===null||h.contains(S))&&(a=_)}return a};Mo.prototype.findShell=function(e){for(var t=0,n=null,i=e.iterator();i.hasNext();){var r=i.next();r.isHole()||(n=r,t++)}return fn.isTrue(t<=1,"found two shells in MinimalEdgeRing list"),n};Mo.prototype.add=function(){if(arguments.length===1){var e=arguments[0];this.add(e.getEdgeEnds(),e.getNodes())}else if(arguments.length===2){var t=arguments[0],n=arguments[1];vi.linkResultDirectedEdges(n);var i=this.buildMaximalEdgeRings(t),r=new _e,a=this.buildMinimalEdgeRings(i,this._shellList,r);this.sortShellsAndHoles(a,this._shellList,r),this.placeFreeHoles(this._shellList,r)}};Mo.prototype.interfaces_=function(){return[]};Mo.prototype.getClass=function(){return Mo};var rf=function(){};rf.prototype.getBounds=function(){};rf.prototype.interfaces_=function(){return[]};rf.prototype.getClass=function(){return rf};var Ns=function(){this._bounds=null,this._item=null;var e=arguments[0],t=arguments[1];this._bounds=e,this._item=t};Ns.prototype.getItem=function(){return this._item};Ns.prototype.getBounds=function(){return this._bounds};Ns.prototype.interfaces_=function(){return[rf,ys]};Ns.prototype.getClass=function(){return Ns};var pl=function(){this._size=null,this._items=null,this._size=0,this._items=new _e,this._items.add(null)};pl.prototype.poll=function(){if(this.isEmpty())return null;var e=this._items.get(1);return this._items.set(1,this._items.get(this._size)),this._size-=1,this.reorder(1),e};pl.prototype.size=function(){return this._size};pl.prototype.reorder=function(e){for(var t=this,n=null,i=this._items.get(e);e*2<=this._size&&(n=e*2,n!==t._size&&t._items.get(n+1).compareTo(t._items.get(n))<0&&n++,t._items.get(n).compareTo(i)<0);e=n)t._items.set(e,t._items.get(n));this._items.set(e,i)};pl.prototype.clear=function(){this._size=0,this._items.clear()};pl.prototype.isEmpty=function(){return this._size===0};pl.prototype.add=function(e){var t=this;this._items.add(null),this._size+=1;var n=this._size;for(this._items.set(0,e);e.compareTo(this._items.get(Math.trunc(n/2)))<0;n/=2)t._items.set(n,t._items.get(Math.trunc(n/2)));this._items.set(n,e)};pl.prototype.interfaces_=function(){return[]};pl.prototype.getClass=function(){return pl};var jl=function(){};jl.prototype.visitItem=function(e){};jl.prototype.interfaces_=function(){return[]};jl.prototype.getClass=function(){return jl};var wc=function(){};wc.prototype.insert=function(e,t){};wc.prototype.remove=function(e,t){};wc.prototype.query=function(){};wc.prototype.interfaces_=function(){return[]};wc.prototype.getClass=function(){return wc};var Yi=function(){if(this._childBoundables=new _e,this._bounds=null,this._level=null,arguments.length!==0&&arguments.length===1){var e=arguments[0];this._level=e}},Bx={serialVersionUID:{configurable:!0}};Yi.prototype.getLevel=function(){return this._level};Yi.prototype.size=function(){return this._childBoundables.size()};Yi.prototype.getChildBoundables=function(){return this._childBoundables};Yi.prototype.addChildBoundable=function(e){fn.isTrue(this._bounds===null),this._childBoundables.add(e)};Yi.prototype.isEmpty=function(){return this._childBoundables.isEmpty()};Yi.prototype.getBounds=function(){return this._bounds===null&&(this._bounds=this.computeBounds()),this._bounds};Yi.prototype.interfaces_=function(){return[rf,ys]};Yi.prototype.getClass=function(){return Yi};Bx.serialVersionUID.get=function(){return 6493722185909574e3};Object.defineProperties(Yi,Bx);var Os=function(){};Os.reverseOrder=function(){return{compare:function(e,t){return t.compareTo(e)}}};Os.min=function(e){return Os.sort(e),e.get(0)};Os.sort=function(e,t){var n=e.toArray();t?Iu.sort(n,t):Iu.sort(n);for(var i=e.iterator(),r=0,a=n.length;rVi.area(this._boundable2)?(this.expand(this._boundable1,this._boundable2,e,t),null):(this.expand(this._boundable2,this._boundable1,e,t),null);if(n)return this.expand(this._boundable1,this._boundable2,e,t),null;if(i)return this.expand(this._boundable2,this._boundable1,e,t),null;throw new pi("neither boundable is composite")};Vi.prototype.isLeaves=function(){return!(Vi.isComposite(this._boundable1)||Vi.isComposite(this._boundable2))};Vi.prototype.compareTo=function(e){var t=e;return this._distancet._distance?1:0};Vi.prototype.expand=function(e,t,n,i){for(var r=this,a=e.getChildBoundables(),h=a.iterator();h.hasNext();){var u=h.next(),_=new Vi(u,t,r._itemDistance);_.getDistance()1,"Node capacity must be greater than 1"),this._nodeCapacity=n}},Fg={IntersectsOp:{configurable:!0},serialVersionUID:{configurable:!0},DEFAULT_NODE_CAPACITY:{configurable:!0}};br.prototype.getNodeCapacity=function(){return this._nodeCapacity};br.prototype.lastNode=function(e){return e.get(e.size()-1)};br.prototype.size=function(){var e=this;if(arguments.length===0)return this.isEmpty()?0:(this.build(),this.size(this._root));if(arguments.length===1){for(var t=arguments[0],n=0,i=t.getChildBoundables().iterator();i.hasNext();){var r=i.next();r instanceof Yi?n+=e.size(r):r instanceof Ns&&(n+=1)}return n}};br.prototype.removeItem=function(e,t){for(var n=null,i=e.getChildBoundables().iterator();i.hasNext();){var r=i.next();r instanceof Ns&&r.getItem()===t&&(n=r)}return n!==null?(e.getChildBoundables().remove(n),!0):!1};br.prototype.itemsTree=function(){var e=this;if(arguments.length===0){this.build();var t=this.itemsTree(this._root);return t===null?new _e:t}else if(arguments.length===1){for(var n=arguments[0],i=new _e,r=n.getChildBoundables().iterator();r.hasNext();){var a=r.next();if(a instanceof Yi){var h=e.itemsTree(a);h!==null&&i.add(h)}else a instanceof Ns?i.add(a.getItem()):fn.shouldNeverReachHere()}return i.size()<=0?null:i}};br.prototype.insert=function(e,t){fn.isTrue(!this._built,"Cannot insert items into an STR packed R-tree after it has been built."),this._itemBoundables.add(new Ns(e,t))};br.prototype.boundablesAtLevel=function(){var e=this;if(arguments.length===1){var t=arguments[0],n=new _e;return this.boundablesAtLevel(t,this._root,n),n}else if(arguments.length===3){var i=arguments[0],r=arguments[1],a=arguments[2];if(fn.isTrue(i>-2),r.getLevel()===i)return a.add(r),null;for(var h=r.getChildBoundables().iterator();h.hasNext();){var u=h.next();u instanceof Yi?e.boundablesAtLevel(i,u,a):(fn.isTrue(u instanceof Ns),i===-1&&a.add(u))}return null}};br.prototype.query=function(){var e=this;if(arguments.length===1){var t=arguments[0];this.build();var n=new _e;return this.isEmpty()||this.getIntersectsOp().intersects(this._root.getBounds(),t)&&this.query(t,this._root,n),n}else if(arguments.length===2){var i=arguments[0],r=arguments[1];if(this.build(),this.isEmpty())return null;this.getIntersectsOp().intersects(this._root.getBounds(),i)&&this.query(i,this._root,r)}else if(arguments.length===3){if(We(arguments[2],jl)&&arguments[0]instanceof Object&&arguments[1]instanceof Yi)for(var a=arguments[0],h=arguments[1],u=arguments[2],_=h.getChildBoundables(),w=0;w<_.size();w++){var S=_.get(w);e.getIntersectsOp().intersects(S.getBounds(),a)&&(S instanceof Yi?e.query(a,S,u):S instanceof Ns?u.visitItem(S.getItem()):fn.shouldNeverReachHere())}else if(We(arguments[2],As)&&arguments[0]instanceof Object&&arguments[1]instanceof Yi)for(var E=arguments[0],M=arguments[1],A=arguments[2],D=M.getChildBoundables(),O=0;On&&(n=a)}}return n+1}};br.prototype.createParentBoundables=function(e,t){var n=this;fn.isTrue(!e.isEmpty());var i=new _e;i.add(this.createNode(t));var r=new _e(e);Os.sort(r,this.getComparator());for(var a=r.iterator();a.hasNext();){var h=a.next();n.lastNode(i).getChildBoundables().size()===n.getNodeCapacity()&&i.add(n.createNode(t)),n.lastNode(i).addChildBoundable(h)}return i};br.prototype.isEmpty=function(){return this._built?this._root.isEmpty():this._itemBoundables.isEmpty()};br.prototype.interfaces_=function(){return[ys]};br.prototype.getClass=function(){return br};br.compareDoubles=function(e,t){return e>t?1:e0);for(var h=new _e,u=0;u0;){var D=A.poll(),O=D.getDistance();if(O>=E)break;D.isLeaves()?(E=O,M=D):D.expandToQueue(A,E)}return[M.getBoundable(0).getItem(),M.getBoundable(1).getItem()]}}else if(arguments.length===3){var F=arguments[0],G=arguments[1],V=arguments[2],Z=new Ns(F,G),$=new Vi(this.getRoot(),Z,V);return this.nearestNeighbour($)[0]}},t.prototype.interfaces_=function(){return[wc,ys]},t.prototype.getClass=function(){return t},t.centreX=function(i){return t.avg(i.getMinX(),i.getMaxX())},t.avg=function(i,r){return(i+r)/2},t.centreY=function(i){return t.avg(i.getMinY(),i.getMaxY())},n.STRtreeNode.get=function(){return d1},n.serialVersionUID.get=function(){return 0x39920f7d5f261e0},n.xComparator.get=function(){return{interfaces_:function(){return[Xh]},compare:function(i,r){return e.compareDoubles(t.centreX(i.getBounds()),t.centreX(r.getBounds()))}}},n.yComparator.get=function(){return{interfaces_:function(){return[Xh]},compare:function(i,r){return e.compareDoubles(t.centreY(i.getBounds()),t.centreY(r.getBounds()))}}},n.intersectsOp.get=function(){return{interfaces_:function(){return[e.IntersectsOp]},intersects:function(i,r){return i.intersects(r)}}},n.DEFAULT_NODE_CAPACITY.get=function(){return 10},Object.defineProperties(t,n),t}(br),d1=function(e){function t(){var n=arguments[0];e.call(this,n)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.computeBounds=function(){for(var n=null,i=this.getChildBoundables().iterator();i.hasNext();){var r=i.next();n===null?n=new Oe(r.getBounds()):n.expandToInclude(r.getBounds())}return n},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(Yi),co=function(){};co.prototype.interfaces_=function(){return[]};co.prototype.getClass=function(){return co};co.relativeSign=function(e,t){return et?1:0};co.compare=function(e,t,n){if(t.equals2D(n))return 0;var i=co.relativeSign(t.x,n.x),r=co.relativeSign(t.y,n.y);switch(e){case 0:return co.compareValue(i,r);case 1:return co.compareValue(r,i);case 2:return co.compareValue(r,-i);case 3:return co.compareValue(-i,r);case 4:return co.compareValue(-i,-r);case 5:return co.compareValue(-r,-i);case 6:return co.compareValue(-r,i);case 7:return co.compareValue(i,-r)}return fn.shouldNeverReachHere("invalid octant value"),0};co.compareValue=function(e,t){return e<0?-1:e>0?1:t<0?-1:t>0?1:0};var ql=function(){this._segString=null,this.coord=null,this.segmentIndex=null,this._segmentOctant=null,this._isInterior=null;var e=arguments[0],t=arguments[1],n=arguments[2],i=arguments[3];this._segString=e,this.coord=new Rt(t),this.segmentIndex=n,this._segmentOctant=i,this._isInterior=!t.equals2D(e.getCoordinate(n))};ql.prototype.getCoordinate=function(){return this.coord};ql.prototype.print=function(e){e.print(this.coord),e.print(" seg # = "+this.segmentIndex)};ql.prototype.compareTo=function(e){var t=e;return this.segmentIndext.segmentIndex?1:this.coord.equals2D(t.coord)?0:co.compare(this._segmentOctant,this.coord,t.coord)};ql.prototype.isEndPoint=function(e){return this.segmentIndex===0&&!this._isInterior||this.segmentIndex===e};ql.prototype.isInterior=function(){return this._isInterior};ql.prototype.interfaces_=function(){return[_s]};ql.prototype.getClass=function(){return ql};var Qr=function(){this._nodeMap=new Br,this._edge=null;var e=arguments[0];this._edge=e};Qr.prototype.getSplitCoordinates=function(){var e=this,t=new _d;this.addEndpoints();for(var n=this.iterator(),i=n.next();n.hasNext();){var r=n.next();e.addEdgeCoordinates(i,r,t),i=r}return t.toCoordinateArray()};Qr.prototype.addCollapsedNodes=function(){var e=this,t=new _e;this.findCollapsesFromInsertedNodes(t),this.findCollapsesFromExistingVertices(t);for(var n=t.iterator();n.hasNext();){var i=n.next().intValue();e.add(e._edge.getCoordinate(i),i)}};Qr.prototype.print=function(e){e.println("Intersections:");for(var t=this.iterator();t.hasNext();){var n=t.next();n.print(e)}};Qr.prototype.findCollapsesFromExistingVertices=function(e){for(var t=this,n=0;n=0?t>=0?n>=i?0:1:n>=i?7:6:t>=0?n>=i?3:2:n>=i?4:5}else if(arguments[0]instanceof Rt&&arguments[1]instanceof Rt){var r=arguments[0],a=arguments[1],h=a.x-r.x,u=a.y-r.y;if(h===0&&u===0)throw new pi("Cannot compute the octant for two identical points "+r);return Sc.octant(h,u)}};var Oa=function(){};Oa.prototype.getCoordinates=function(){};Oa.prototype.size=function(){};Oa.prototype.getCoordinate=function(e){};Oa.prototype.isClosed=function(){};Oa.prototype.setData=function(e){};Oa.prototype.getData=function(){};Oa.prototype.interfaces_=function(){return[]};Oa.prototype.getClass=function(){return Oa};var id=function(){};id.prototype.addIntersection=function(e,t){};id.prototype.interfaces_=function(){return[Oa]};id.prototype.getClass=function(){return id};var zi=function(){this._nodeList=new Qr(this),this._pts=null,this._data=null;var e=arguments[0],t=arguments[1];this._pts=e,this._data=t};zi.prototype.getCoordinates=function(){return this._pts};zi.prototype.size=function(){return this._pts.length};zi.prototype.getCoordinate=function(e){return this._pts[e]};zi.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])};zi.prototype.getSegmentOctant=function(e){return e===this._pts.length-1?-1:this.safeOctant(this.getCoordinate(e),this.getCoordinate(e+1))};zi.prototype.setData=function(e){this._data=e};zi.prototype.safeOctant=function(e,t){return e.equals2D(t)?0:Sc.octant(e,t)};zi.prototype.getData=function(){return this._data};zi.prototype.addIntersection=function(){if(arguments.length===2){var e=arguments[0],t=arguments[1];this.addIntersectionNode(e,t)}else if(arguments.length===4){var n=arguments[0],i=arguments[1],r=arguments[3],a=new Rt(n.getIntersection(r));this.addIntersection(a,i)}};zi.prototype.toString=function(){return Ds.toLineString(new Ri(this._pts))};zi.prototype.getNodeList=function(){return this._nodeList};zi.prototype.addIntersectionNode=function(e,t){var n=t,i=n+1;if(i=0&&n>=0||t<=0&&n<=0?Math.max(t,n):0}else if(arguments[0]instanceof Rt){var i=arguments[0];return we.orientationIndex(this.p0,this.p1,i)}};Be.prototype.toGeometry=function(e){return e.createLineString([this.p0,this.p1])};Be.prototype.isVertical=function(){return this.p0.x===this.p1.x};Be.prototype.equals=function(e){if(!(e instanceof Be))return!1;var t=e;return this.p0.equals(t.p0)&&this.p1.equals(t.p1)};Be.prototype.intersection=function(e){var t=new Fu;return t.computeIntersection(this.p0,this.p1,e.p0,e.p1),t.hasIntersection()?t.getIntersection(0):null};Be.prototype.project=function(){if(arguments[0]instanceof Rt){var e=arguments[0];if(e.equals(this.p0)||e.equals(this.p1))return new Rt(e);var t=this.projectionFactor(e),n=new Rt;return n.x=this.p0.x+t*(this.p1.x-this.p0.x),n.y=this.p0.y+t*(this.p1.y-this.p0.y),n}else if(arguments[0]instanceof Be){var i=arguments[0],r=this.projectionFactor(i.p0),a=this.projectionFactor(i.p1);if(r>=1&&a>=1||r<=0&&a<=0)return null;var h=this.project(i.p0);r<0&&(h=this.p0),r>1&&(h=this.p1);var u=this.project(i.p1);return a<0&&(u=this.p0),a>1&&(u=this.p1),new Be(h,u)}};Be.prototype.normalize=function(){this.p1.compareTo(this.p0)<0&&this.reverse()};Be.prototype.angle=function(){return Math.atan2(this.p1.y-this.p0.y,this.p1.x-this.p0.x)};Be.prototype.getCoordinate=function(e){return e===0?this.p0:this.p1};Be.prototype.distancePerpendicular=function(e){return we.distancePointLinePerpendicular(e,this.p0,this.p1)};Be.prototype.minY=function(){return Math.min(this.p0.y,this.p1.y)};Be.prototype.midPoint=function(){return Be.midPoint(this.p0,this.p1)};Be.prototype.projectionFactor=function(e){if(e.equals(this.p0))return 0;if(e.equals(this.p1))return 1;var t=this.p1.x-this.p0.x,n=this.p1.y-this.p0.y,i=t*t+n*n;if(i<=0)return on.NaN;var r=((e.x-this.p0.x)*t+(e.y-this.p0.y)*n)/i;return r};Be.prototype.closestPoints=function(e){var t=this.intersection(e);if(t!==null)return[t,t];var n=new Array(2).fill(null),i=on.MAX_VALUE,r=null,a=this.closestPoint(e.p0);i=a.distance(e.p0),n[0]=a,n[1]=e.p0;var h=this.closestPoint(e.p1);r=h.distance(e.p1),r0&&t<1)return this.project(e);var n=this.p0.distance(e),i=this.p1.distance(e);return n1||on.isNaN(t))&&(t=1),t};Be.prototype.toString=function(){return"LINESTRING( "+this.p0.x+" "+this.p0.y+", "+this.p1.x+" "+this.p1.y+")"};Be.prototype.isHorizontal=function(){return this.p0.y===this.p1.y};Be.prototype.distance=function(){if(arguments[0]instanceof Be){var e=arguments[0];return we.distanceLineLine(this.p0,this.p1,e.p0,e.p1)}else if(arguments[0]instanceof Rt){var t=arguments[0];return we.distancePointLine(t,this.p0,this.p1)}};Be.prototype.pointAlong=function(e){var t=new Rt;return t.x=this.p0.x+e*(this.p1.x-this.p0.x),t.y=this.p0.y+e*(this.p1.y-this.p0.y),t};Be.prototype.hashCode=function(){var e=on.doubleToLongBits(this.p0.x);e^=on.doubleToLongBits(this.p0.y)*31;var t=Math.trunc(e)^Math.trunc(e>>32),n=on.doubleToLongBits(this.p1.x);n^=on.doubleToLongBits(this.p1.y)*31;var i=Math.trunc(n)^Math.trunc(n>>32);return t^i};Be.prototype.interfaces_=function(){return[_s,ys]};Be.prototype.getClass=function(){return Be};Be.midPoint=function(e,t){return new Rt((e.x+t.x)/2,(e.y+t.y)/2)};Ux.serialVersionUID.get=function(){return 0x2d2172135f411c00};Object.defineProperties(Be,Ux);var rd=function(){this.tempEnv1=new Oe,this.tempEnv2=new Oe,this._overlapSeg1=new Be,this._overlapSeg2=new Be};rd.prototype.overlap=function(){if(arguments.length!==2&&arguments.length===4){var e=arguments[0],t=arguments[1],n=arguments[2],i=arguments[3];e.getLineSegment(t,this._overlapSeg1),n.getLineSegment(i,this._overlapSeg2),this.overlap(this._overlapSeg1,this._overlapSeg2)}};rd.prototype.interfaces_=function(){return[]};rd.prototype.getClass=function(){return rd};var Po=function(){this._pts=null,this._start=null,this._end=null,this._env=null,this._context=null,this._id=null;var e=arguments[0],t=arguments[1],n=arguments[2],i=arguments[3];this._pts=e,this._start=t,this._end=n,this._context=i};Po.prototype.getLineSegment=function(e,t){t.p0=this._pts[e],t.p1=this._pts[e+1]};Po.prototype.computeSelect=function(e,t,n,i){var r=this._pts[t],a=this._pts[n];if(i.tempEnv1.init(r,a),n-t===1)return i.select(this,t),null;if(!e.intersects(i.tempEnv1))return null;var h=Math.trunc((t+n)/2);t=e.length-1)return e.length-1;for(var i=Gn.quadrant(e[n],e[n+1]),r=t+1;rh.getId()&&(h.computeOverlaps(w,r),i._nOverlaps++),i._segInt.isDone())return null}},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},n.SegmentOverlapAction.get=function(){return m1},Object.defineProperties(t,n),t}(od),m1=function(e){function t(){e.call(this),this._si=null;var n=arguments[0];this._si=n}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.overlap=function(){if(arguments.length===4){var n=arguments[0],i=arguments[1],r=arguments[2],a=arguments[3],h=n.getContext(),u=r.getContext();this._si.processIntersections(h,i,u,a)}else return e.prototype.overlap.apply(this,arguments)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(rd),Nn=function e(){if(this._quadrantSegments=e.DEFAULT_QUADRANT_SEGMENTS,this._endCapStyle=e.CAP_ROUND,this._joinStyle=e.JOIN_ROUND,this._mitreLimit=e.DEFAULT_MITRE_LIMIT,this._isSingleSided=!1,this._simplifyFactor=e.DEFAULT_SIMPLIFY_FACTOR,arguments.length!==0){if(arguments.length===1){var t=arguments[0];this.setQuadrantSegments(t)}else if(arguments.length===2){var n=arguments[0],i=arguments[1];this.setQuadrantSegments(n),this.setEndCapStyle(i)}else if(arguments.length===4){var r=arguments[0],a=arguments[1],h=arguments[2],u=arguments[3];this.setQuadrantSegments(r),this.setEndCapStyle(a),this.setJoinStyle(h),this.setMitreLimit(u)}}},_l={CAP_ROUND:{configurable:!0},CAP_FLAT:{configurable:!0},CAP_SQUARE:{configurable:!0},JOIN_ROUND:{configurable:!0},JOIN_MITRE:{configurable:!0},JOIN_BEVEL:{configurable:!0},DEFAULT_QUADRANT_SEGMENTS:{configurable:!0},DEFAULT_MITRE_LIMIT:{configurable:!0},DEFAULT_SIMPLIFY_FACTOR:{configurable:!0}};Nn.prototype.getEndCapStyle=function(){return this._endCapStyle};Nn.prototype.isSingleSided=function(){return this._isSingleSided};Nn.prototype.setQuadrantSegments=function(e){this._quadrantSegments=e,this._quadrantSegments===0&&(this._joinStyle=Nn.JOIN_BEVEL),this._quadrantSegments<0&&(this._joinStyle=Nn.JOIN_MITRE,this._mitreLimit=Math.abs(this._quadrantSegments)),e<=0&&(this._quadrantSegments=1),this._joinStyle!==Nn.JOIN_ROUND&&(this._quadrantSegments=Nn.DEFAULT_QUADRANT_SEGMENTS)};Nn.prototype.getJoinStyle=function(){return this._joinStyle};Nn.prototype.setJoinStyle=function(e){this._joinStyle=e};Nn.prototype.setSimplifyFactor=function(e){this._simplifyFactor=e<0?0:e};Nn.prototype.getSimplifyFactor=function(){return this._simplifyFactor};Nn.prototype.getQuadrantSegments=function(){return this._quadrantSegments};Nn.prototype.setEndCapStyle=function(e){this._endCapStyle=e};Nn.prototype.getMitreLimit=function(){return this._mitreLimit};Nn.prototype.setMitreLimit=function(e){this._mitreLimit=e};Nn.prototype.setSingleSided=function(e){this._isSingleSided=e};Nn.prototype.interfaces_=function(){return[]};Nn.prototype.getClass=function(){return Nn};Nn.bufferDistanceError=function(e){var t=Math.PI/2/e;return 1-Math.cos(t/2)};_l.CAP_ROUND.get=function(){return 1};_l.CAP_FLAT.get=function(){return 2};_l.CAP_SQUARE.get=function(){return 3};_l.JOIN_ROUND.get=function(){return 1};_l.JOIN_MITRE.get=function(){return 2};_l.JOIN_BEVEL.get=function(){return 3};_l.DEFAULT_QUADRANT_SEGMENTS.get=function(){return 8};_l.DEFAULT_MITRE_LIMIT.get=function(){return 5};_l.DEFAULT_SIMPLIFY_FACTOR.get=function(){return .01};Object.defineProperties(Nn,_l);var Mi=function(e){this._distanceTol=null,this._isDeleted=null,this._angleOrientation=we.COUNTERCLOCKWISE,this._inputLine=e||null},bd={INIT:{configurable:!0},DELETE:{configurable:!0},KEEP:{configurable:!0},NUM_PTS_TO_CHECK:{configurable:!0}};Mi.prototype.isDeletable=function(e,t,n,i){var r=this._inputLine[e],a=this._inputLine[t],h=this._inputLine[n];return!this.isConcave(r,a,h)||!this.isShallow(r,a,h,i)?!1:this.isShallowSampled(r,a,e,n,i)};Mi.prototype.deleteShallowConcavities=function(){for(var e=this,t=1,n=this.findNextNonDeletedIndex(t),i=this.findNextNonDeletedIndex(n),r=!1;i=0;r--)n.addPt(e[r])};Qo.prototype.isRedundant=function(e){if(this._ptList.size()<1)return!1;var t=this._ptList.get(this._ptList.size()-1),n=e.distance(t);return nMath.PI;)e-=En.PI_TIMES_2;for(;e<=-Math.PI;)e+=En.PI_TIMES_2;return e};En.angle=function(){if(arguments.length===1){var e=arguments[0];return Math.atan2(e.y,e.x)}else if(arguments.length===2){var t=arguments[0],n=arguments[1],i=n.x-t.x,r=n.y-t.y;return Math.atan2(r,i)}};En.isAcute=function(e,t,n){var i=e.x-t.x,r=e.y-t.y,a=n.x-t.x,h=n.y-t.y,u=i*a+r*h;return u>0};En.isObtuse=function(e,t,n){var i=e.x-t.x,r=e.y-t.y,a=n.x-t.x,h=n.y-t.y,u=i*a+r*h;return u<0};En.interiorAngle=function(e,t,n){var i=En.angle(t,e),r=En.angle(t,n);return Math.abs(r-i)};En.normalizePositive=function(e){if(e<0){for(;e<0;)e+=En.PI_TIMES_2;e>=En.PI_TIMES_2&&(e=0)}else{for(;e>=En.PI_TIMES_2;)e-=En.PI_TIMES_2;e<0&&(e=0)}return e};En.angleBetween=function(e,t,n){var i=En.angle(t,e),r=En.angle(t,n);return En.diff(i,r)};En.diff=function(e,t){var n=null;return eMath.PI&&(n=2*Math.PI-n),n};En.toRadians=function(e){return e*Math.PI/180};En.getTurn=function(e,t){var n=Math.sin(t-e);return n>0?En.COUNTERCLOCKWISE:n<0?En.CLOCKWISE:En.NONE};En.angleBetweenOriented=function(e,t,n){var i=En.angle(t,e),r=En.angle(t,n),a=r-i;return a<=-Math.PI?a+En.PI_TIMES_2:a>Math.PI?a-En.PI_TIMES_2:a};Fc.PI_TIMES_2.get=function(){return 2*Math.PI};Fc.PI_OVER_2.get=function(){return Math.PI/2};Fc.PI_OVER_4.get=function(){return Math.PI/4};Fc.COUNTERCLOCKWISE.get=function(){return we.COUNTERCLOCKWISE};Fc.CLOCKWISE.get=function(){return we.CLOCKWISE};Fc.NONE.get=function(){return we.COLLINEAR};Object.defineProperties(En,Fc);var li=function e(){this._maxCurveSegmentError=0,this._filletAngleQuantum=null,this._closingSegLengthFactor=1,this._segList=null,this._distance=0,this._precisionModel=null,this._bufParams=null,this._li=null,this._s0=null,this._s1=null,this._s2=null,this._seg0=new Be,this._seg1=new Be,this._offset0=new Be,this._offset1=new Be,this._side=0,this._hasNarrowConcaveAngle=!1;var t=arguments[0],n=arguments[1],i=arguments[2];this._precisionModel=t,this._bufParams=n,this._li=new Fu,this._filletAngleQuantum=Math.PI/2/n.getQuadrantSegments(),n.getQuadrantSegments()>=8&&n.getJoinStyle()===Nn.JOIN_ROUND&&(this._closingSegLengthFactor=e.MAX_CLOSING_SEG_LEN_FACTOR),this.init(i)},xd={OFFSET_SEGMENT_SEPARATION_FACTOR:{configurable:!0},INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},CURVE_VERTEX_SNAP_DISTANCE_FACTOR:{configurable:!0},MAX_CLOSING_SEG_LEN_FACTOR:{configurable:!0}};li.prototype.addNextSegment=function(e,t){if(this._s0=this._s1,this._s1=this._s2,this._s2=e,this._seg0.setCoordinates(this._s0,this._s1),this.computeOffsetSegment(this._seg0,this._side,this._distance,this._offset0),this._seg1.setCoordinates(this._s1,this._s2),this.computeOffsetSegment(this._seg1,this._side,this._distance,this._offset1),this._s1.equals(this._s2))return null;var n=we.computeOrientation(this._s0,this._s1,this._s2),i=n===we.CLOCKWISE&&this._side===ae.LEFT||n===we.COUNTERCLOCKWISE&&this._side===ae.RIGHT;n===0?this.addCollinear(t):i?this.addOutsideTurn(n,t):this.addInsideTurn(n,t)};li.prototype.addLineEndCap=function(e,t){var n=new Be(e,t),i=new Be;this.computeOffsetSegment(n,ae.LEFT,this._distance,i);var r=new Be;this.computeOffsetSegment(n,ae.RIGHT,this._distance,r);var a=t.x-e.x,h=t.y-e.y,u=Math.atan2(h,a);switch(this._bufParams.getEndCapStyle()){case Nn.CAP_ROUND:this._segList.addPt(i.p1),this.addFilletArc(t,u+Math.PI/2,u-Math.PI/2,we.CLOCKWISE,this._distance),this._segList.addPt(r.p1);break;case Nn.CAP_FLAT:this._segList.addPt(i.p1),this._segList.addPt(r.p1);break;case Nn.CAP_SQUARE:var _=new Rt;_.x=Math.abs(this._distance)*Math.cos(u),_.y=Math.abs(this._distance)*Math.sin(u);var w=new Rt(i.p1.x+_.x,i.p1.y+_.y),S=new Rt(r.p1.x+_.x,r.p1.y+_.y);this._segList.addPt(w),this._segList.addPt(S);break}};li.prototype.getCoordinates=function(){var e=this._segList.getCoordinates();return e};li.prototype.addMitreJoin=function(e,t,n,i){var r=!0,a=null;try{a=ks.intersection(t.p0,t.p1,n.p0,n.p1);var h=i<=0?1:a.distance(e)/Math.abs(i);h>this._bufParams.getMitreLimit()&&(r=!1)}catch(u){if(u instanceof yf)a=new Rt(0,0),r=!1;else throw u}finally{}r?this._segList.addPt(a):this.addLimitedMitreJoin(t,n,i,this._bufParams.getMitreLimit())};li.prototype.addFilletCorner=function(e,t,n,i,r){var a=t.x-e.x,h=t.y-e.y,u=Math.atan2(h,a),_=n.x-e.x,w=n.y-e.y,S=Math.atan2(w,_);i===we.CLOCKWISE?u<=S&&(u+=2*Math.PI):u>=S&&(u-=2*Math.PI),this._segList.addPt(t),this.addFilletArc(e,u,S,i,r),this._segList.addPt(n)};li.prototype.addOutsideTurn=function(e,t){if(this._offset0.p1.distance(this._offset1.p0)0){var n=new Rt((this._closingSegLengthFactor*this._offset0.p1.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset0.p1.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(n);var i=new Rt((this._closingSegLengthFactor*this._offset1.p0.x+this._s1.x)/(this._closingSegLengthFactor+1),(this._closingSegLengthFactor*this._offset1.p0.y+this._s1.y)/(this._closingSegLengthFactor+1));this._segList.addPt(i)}else this._segList.addPt(this._s1);this._segList.addPt(this._offset1.p0)}};li.prototype.createCircle=function(e){var t=new Rt(e.x+this._distance,e.y);this._segList.addPt(t),this.addFilletArc(e,0,2*Math.PI,-1,this._distance),this._segList.closeRing()};li.prototype.addBevelJoin=function(e,t){this._segList.addPt(e.p1),this._segList.addPt(t.p0)};li.prototype.init=function(e){this._distance=e,this._maxCurveSegmentError=e*(1-Math.cos(this._filletAngleQuantum/2)),this._segList=new Qo,this._segList.setPrecisionModel(this._precisionModel),this._segList.setMinimumVertexDistance(e*li.CURVE_VERTEX_SNAP_DISTANCE_FACTOR)};li.prototype.addCollinear=function(e){this._li.computeIntersection(this._s0,this._s1,this._s1,this._s2);var t=this._li.getIntersectionNum();t>=2&&(this._bufParams.getJoinStyle()===Nn.JOIN_BEVEL||this._bufParams.getJoinStyle()===Nn.JOIN_MITRE?(e&&this._segList.addPt(this._offset0.p1),this._segList.addPt(this._offset1.p0)):this.addFilletCorner(this._s1,this._offset0.p1,this._offset1.p0,we.CLOCKWISE,this._distance))};li.prototype.closeRing=function(){this._segList.closeRing()};li.prototype.hasNarrowConcaveAngle=function(){return this._hasNarrowConcaveAngle};li.prototype.interfaces_=function(){return[]};li.prototype.getClass=function(){return li};xd.OFFSET_SEGMENT_SEPARATION_FACTOR.get=function(){return .001};xd.INSIDE_TURN_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return .001};xd.CURVE_VERTEX_SNAP_DISTANCE_FACTOR.get=function(){return 1e-6};xd.MAX_CLOSING_SEG_LEN_FACTOR.get=function(){return 80};Object.defineProperties(li,xd);var fo=function(){this._distance=0,this._precisionModel=null,this._bufParams=null;var e=arguments[0],t=arguments[1];this._precisionModel=e,this._bufParams=t};fo.prototype.getOffsetCurve=function(e,t){if(this._distance=t,t===0)return null;var n=t<0,i=Math.abs(t),r=this.getSegGen(i);e.length<=1?this.computePointCurve(e[0],r):this.computeOffsetCurve(e,n,r);var a=r.getCoordinates();return n&&xn.reverse(a),a};fo.prototype.computeSingleSidedBufferCurve=function(e,t,n){var i=this.simplifyTolerance(this._distance);if(t){n.addSegments(e,!0);var r=Mi.simplify(e,-i),a=r.length-1;n.initSideSegments(r[a],r[a-1],ae.LEFT),n.addFirstSegment();for(var h=a-2;h>=0;h--)n.addNextSegment(r[h],!0)}else{n.addSegments(e,!1);var u=Mi.simplify(e,i),_=u.length-1;n.initSideSegments(u[0],u[1],ae.LEFT),n.addFirstSegment();for(var w=2;w<=_;w++)n.addNextSegment(u[w],!0)}n.addLastSegment(),n.closeRing()};fo.prototype.computeRingBufferCurve=function(e,t,n){var i=this.simplifyTolerance(this._distance);t===ae.RIGHT&&(i=-i);var r=Mi.simplify(e,i),a=r.length-1;n.initSideSegments(r[a-1],r[0],t);for(var h=1;h<=a;h++){var u=h!==1;n.addNextSegment(r[h],u)}n.closeRing()};fo.prototype.computeLineBufferCurve=function(e,t){var n=this.simplifyTolerance(this._distance),i=Mi.simplify(e,n),r=i.length-1;t.initSideSegments(i[0],i[1],ae.LEFT);for(var a=2;a<=r;a++)t.addNextSegment(i[a],!0);t.addLastSegment(),t.addLineEndCap(i[r-1],i[r]);var h=Mi.simplify(e,-n),u=h.length-1;t.initSideSegments(h[u],h[u-1],ae.LEFT);for(var _=u-2;_>=0;_--)t.addNextSegment(h[_],!0);t.addLastSegment(),t.addLineEndCap(h[1],h[0]),t.closeRing()};fo.prototype.computePointCurve=function(e,t){switch(this._bufParams.getEndCapStyle()){case Nn.CAP_ROUND:t.createCircle(e);break;case Nn.CAP_SQUARE:t.createSquare(e);break}};fo.prototype.getLineCurve=function(e,t){if(this._distance=t,t<0&&!this._bufParams.isSingleSided()||t===0)return null;var n=Math.abs(t),i=this.getSegGen(n);if(e.length<=1)this.computePointCurve(e[0],i);else if(this._bufParams.isSingleSided()){var r=t<0;this.computeSingleSidedBufferCurve(e,r,i)}else this.computeLineBufferCurve(e,i);var a=i.getCoordinates();return a};fo.prototype.getBufferParameters=function(){return this._bufParams};fo.prototype.simplifyTolerance=function(e){return e*this._bufParams.getSimplifyFactor()};fo.prototype.getRingCurve=function(e,t,n){if(this._distance=n,e.length<=2)return this.getLineCurve(e,n);if(n===0)return fo.copyCoordinates(e);var i=this.getSegGen(n);return this.computeRingBufferCurve(e,t,i),i.getCoordinates()};fo.prototype.computeOffsetCurve=function(e,t,n){var i=this.simplifyTolerance(this._distance);if(t){var r=Mi.simplify(e,-i),a=r.length-1;n.initSideSegments(r[a],r[a-1],ae.LEFT),n.addFirstSegment();for(var h=a-2;h>=0;h--)n.addNextSegment(r[h],!0)}else{var u=Mi.simplify(e,i),_=u.length-1;n.initSideSegments(u[0],u[1],ae.LEFT),n.addFirstSegment();for(var w=2;w<=_;w++)n.addNextSegment(u[w],!0)}n.addLastSegment()};fo.prototype.getSegGen=function(e){return new li(this._precisionModel,this._bufParams,e)};fo.prototype.interfaces_=function(){return[]};fo.prototype.getClass=function(){return fo};fo.copyCoordinates=function(e){for(var t=new Array(e.length).fill(null),n=0;na.getMaxY()||e.findStabbedSegments(t,r.getDirectedEdges(),n)}return n}else if(arguments.length===3){if(We(arguments[2],As)&&arguments[0]instanceof Rt&&arguments[1]instanceof vy)for(var h=arguments[0],u=arguments[1],_=arguments[2],w=u.getEdge().getCoordinates(),S=0;Se._seg.p1.y&&e._seg.reverse();var E=Math.max(e._seg.p0.x,e._seg.p1.x);if(!(Ee._seg.p1.y)&&we.computeOrientation(e._seg.p0,e._seg.p1,h)!==we.RIGHT){var M=u.getDepth(ae.LEFT);e._seg.p0.equals(w[S])||(M=u.getDepth(ae.RIGHT));var A=new Mu(e._seg,M);_.add(A)}}else if(We(arguments[2],As)&&arguments[0]instanceof Rt&&We(arguments[1],As))for(var D=arguments[0],O=arguments[1],F=arguments[2],G=O.iterator();G.hasNext();){var V=G.next();V.isForward()&&e.findStabbedSegments(D,V,F)}}};Ic.prototype.getDepth=function(e){var t=this.findStabbedSegments(e);if(t.size()===0)return 0;var n=Os.min(t);return n._leftDepth};Ic.prototype.interfaces_=function(){return[]};Ic.prototype.getClass=function(){return Ic};jx.DepthSegment.get=function(){return Mu};Object.defineProperties(Ic,jx);var Mu=function(){this._upwardSeg=null,this._leftDepth=null;var e=arguments[0],t=arguments[1];this._upwardSeg=new Be(e),this._leftDepth=t};Mu.prototype.compareTo=function(e){var t=e;if(this._upwardSeg.minX()>=t._upwardSeg.maxX())return 1;if(this._upwardSeg.maxX()<=t._upwardSeg.minX())return-1;var n=this._upwardSeg.orientationIndex(t._upwardSeg);return n!==0||(n=-1*t._upwardSeg.orientationIndex(this._upwardSeg),n!==0)?n:this._upwardSeg.compareTo(t._upwardSeg)};Mu.prototype.compareX=function(e,t){var n=e.p0.compareTo(t.p0);return n!==0?n:e.p1.compareTo(t.p1)};Mu.prototype.toString=function(){return this._upwardSeg.toString()};Mu.prototype.interfaces_=function(){return[_s]};Mu.prototype.getClass=function(){return Mu};var zn=function(e,t,n){this.p0=e||null,this.p1=t||null,this.p2=n||null};zn.prototype.area=function(){return zn.area(this.p0,this.p1,this.p2)};zn.prototype.signedArea=function(){return zn.signedArea(this.p0,this.p1,this.p2)};zn.prototype.interpolateZ=function(e){if(e===null)throw new pi("Supplied point is null.");return zn.interpolateZ(e,this.p0,this.p1,this.p2)};zn.prototype.longestSideLength=function(){return zn.longestSideLength(this.p0,this.p1,this.p2)};zn.prototype.isAcute=function(){return zn.isAcute(this.p0,this.p1,this.p2)};zn.prototype.circumcentre=function(){return zn.circumcentre(this.p0,this.p1,this.p2)};zn.prototype.area3D=function(){return zn.area3D(this.p0,this.p1,this.p2)};zn.prototype.centroid=function(){return zn.centroid(this.p0,this.p1,this.p2)};zn.prototype.inCentre=function(){return zn.inCentre(this.p0,this.p1,this.p2)};zn.prototype.interfaces_=function(){return[]};zn.prototype.getClass=function(){return zn};zn.area=function(e,t,n){return Math.abs(((n.x-e.x)*(t.y-e.y)-(t.x-e.x)*(n.y-e.y))/2)};zn.signedArea=function(e,t,n){return((n.x-e.x)*(t.y-e.y)-(t.x-e.x)*(n.y-e.y))/2};zn.det=function(e,t,n,i){return e*i-t*n};zn.interpolateZ=function(e,t,n,i){var r=t.x,a=t.y,h=n.x-r,u=i.x-r,_=n.y-a,w=i.y-a,S=h*w-u*_,E=e.x-r,M=e.y-a,A=(w*E-u*M)/S,D=(-_*E+h*M)/S,O=t.z+A*(n.z-t.z)+D*(i.z-t.z);return O};zn.longestSideLength=function(e,t,n){var i=e.distance(t),r=t.distance(n),a=n.distance(e),h=i;return r>h&&(h=r),a>h&&(h=a),h};zn.isAcute=function(e,t,n){return!(!En.isAcute(e,t,n)||!En.isAcute(t,n,e)||!En.isAcute(n,e,t))};zn.circumcentre=function(e,t,n){var i=n.x,r=n.y,a=e.x-i,h=e.y-r,u=t.x-i,_=t.y-r,w=2*zn.det(a,h,u,_),S=zn.det(h,a*a+h*h,_,u*u+_*_),E=zn.det(a,a*a+h*h,u,u*u+_*_),M=i-S/w,A=r+E/w;return new Rt(M,A)};zn.perpendicularBisector=function(e,t){var n=t.x-e.x,i=t.y-e.y,r=new ks(e.x+n/2,e.y+i/2,1),a=new ks(e.x-i+n/2,e.y+n+i/2,1);return new ks(r,a)};zn.angleBisector=function(e,t,n){var i=t.distance(e),r=t.distance(n),a=i/(i+r),h=n.x-e.x,u=n.y-e.y,_=new Rt(e.x+a*h,e.y+a*u);return _};zn.area3D=function(e,t,n){var i=t.x-e.x,r=t.y-e.y,a=t.z-e.z,h=n.x-e.x,u=n.y-e.y,_=n.z-e.z,w=r*_-a*u,S=a*h-i*_,E=i*u-r*h,M=w*w+S*S+E*E,A=Math.sqrt(M)/2;return A};zn.centroid=function(e,t,n){var i=(e.x+t.x+n.x)/3,r=(e.y+t.y+n.y)/3;return new Rt(i,r)};zn.inCentre=function(e,t,n){var i=t.distance(n),r=e.distance(n),a=e.distance(t),h=i+r+a,u=(i*e.x+r*t.x+a*n.x)/h,_=(i*e.y+r*t.y+a*n.y)/h;return new Rt(u,_)};var gs=function(){this._inputGeom=null,this._distance=null,this._curveBuilder=null,this._curveList=new _e;var e=arguments[0],t=arguments[1],n=arguments[2];this._inputGeom=e,this._distance=t,this._curveBuilder=n};gs.prototype.addPoint=function(e){if(this._distance<=0)return null;var t=e.getCoordinates(),n=this._curveBuilder.getLineCurve(t,this._distance);this.addCurve(n,Ot.EXTERIOR,Ot.INTERIOR)};gs.prototype.addPolygon=function(e){var t=this,n=this._distance,i=ae.LEFT;this._distance<0&&(n=-this._distance,i=ae.RIGHT);var r=e.getExteriorRing(),a=xn.removeRepeatedPoints(r.getCoordinates());if(this._distance<0&&this.isErodedCompletely(r,this._distance)||this._distance<=0&&a.length<3)return null;this.addPolygonRing(a,n,i,Ot.EXTERIOR,Ot.INTERIOR);for(var h=0;h0&&t.isErodedCompletely(u,-t._distance)||t.addPolygonRing(_,n,ae.opposite(i),Ot.INTERIOR,Ot.EXTERIOR)}};gs.prototype.isTriangleErodedCompletely=function(e,t){var n=new zn(e[0],e[1],e[2]),i=n.inCentre(),r=we.distancePointLine(i,n.p0,n.p1);return r=Ra.MINIMUM_VALID_SIZE&&we.isCCW(e)&&(a=r,h=i,n=ae.opposite(n));var u=this._curveBuilder.getRingCurve(e,n,t);this.addCurve(u,a,h)};gs.prototype.add=function(e){if(e.isEmpty())return null;e instanceof Ki?this.addPolygon(e):e instanceof Li?this.addLineString(e):e instanceof Lo?this.addPoint(e):e instanceof ef?this.addCollection(e):e instanceof Tu?this.addCollection(e):e instanceof ka?this.addCollection(e):e instanceof Kr&&this.addCollection(e)};gs.prototype.isErodedCompletely=function(e,t){var n=e.getCoordinates();if(n.length<4)return t<0;if(n.length===4)return this.isTriangleErodedCompletely(n,t);var i=e.getEnvelopeInternal(),r=Math.min(i.getHeight(),i.getWidth());return t<0&&2*Math.abs(t)>r};gs.prototype.addCollection=function(e){for(var t=this,n=0;n=this._max)throw new bf;var e=this._parent.getGeometryN(this._index++);return e instanceof Kr?(this._subcollectionIterator=new Aa(e),this._subcollectionIterator.next()):e};Aa.prototype.remove=function(){throw new Error(this.getClass().getName())};Aa.prototype.hasNext=function(){if(this._atStart)return!0;if(this._subcollectionIterator!==null){if(this._subcollectionIterator.hasNext())return!0;this._subcollectionIterator=null}return!(this._index>=this._max)};Aa.prototype.interfaces_=function(){return[vf]};Aa.prototype.getClass=function(){return Aa};Aa.isAtomic=function(e){return!(e instanceof Kr)};var Xo=function(){this._geom=null;var e=arguments[0];this._geom=e};Xo.prototype.locate=function(e){return Xo.locate(e,this._geom)};Xo.prototype.interfaces_=function(){return[sf]};Xo.prototype.getClass=function(){return Xo};Xo.isPointInRing=function(e,t){return t.getEnvelopeInternal().intersects(e)?we.isPointInRing(e,t.getCoordinates()):!1};Xo.containsPointInPolygon=function(e,t){if(t.isEmpty())return!1;var n=t.getExteriorRing();if(!Xo.isPointInRing(e,n))return!1;for(var i=0;i=0;a--){var h=n._edgeList.get(a),u=h.getSym();r===null&&(r=u),i!==null&&u.setNext(i),i=h}r.setNext(i)},t.prototype.computeDepths=function(){var n=this;if(arguments.length===1){var i=arguments[0],r=this.findIndex(i),a=i.getDepth(ae.LEFT),h=i.getDepth(ae.RIGHT),u=this.computeDepths(r+1,this._edgeList.size(),a),_=this.computeDepths(0,r,u);if(_!==h)throw new fl("depth mismatch at "+i.getCoordinate())}else if(arguments.length===3){for(var w=arguments[0],S=arguments[1],E=arguments[2],M=E,A=w;A=0;u--){var _=i._resultAreaEdgeList.get(u),w=_.getSym();switch(r===null&&_.getEdgeRing()===n&&(r=_),h){case i._SCANNING_FOR_INCOMING:if(w.getEdgeRing()!==n)continue;a=w,h=i._LINKING_TO_OUTGOING;break;case i._LINKING_TO_OUTGOING:if(_.getEdgeRing()!==n)continue;a.setNextMin(_),h=i._SCANNING_FOR_INCOMING;break}}h===this._LINKING_TO_OUTGOING&&(fn.isTrue(r!==null,"found null for first outgoing dirEdge"),fn.isTrue(r.getEdgeRing()===n,"unable to link last incoming dirEdge"),a.setNextMin(r))},t.prototype.getOutgoingDegree=function(){if(arguments.length===0){for(var n=0,i=this.iterator();i.hasNext();){var r=i.next();r.isInResult()&&n++}return n}else if(arguments.length===1){for(var a=arguments[0],h=0,u=this.iterator();u.hasNext();){var _=u.next();_.getEdgeRing()===a&&h++}return h}},t.prototype.getLabel=function(){return this._label},t.prototype.findCoveredLineEdges=function(){for(var n=Ot.NONE,i=this.iterator();i.hasNext();){var r=i.next(),a=r.getSym();if(!r.isLineEdge()){if(r.isInResult()){n=Ot.INTERIOR;break}if(a.isInResult()){n=Ot.EXTERIOR;break}}}if(n===Ot.NONE)return null;for(var h=n,u=this.iterator();u.hasNext();){var _=u.next(),w=_.getSym();_.isLineEdge()?_.getEdge().setCovered(h===Ot.INTERIOR):(_.isInResult()&&(h=Ot.EXTERIOR),w.isInResult()&&(h=Ot.INTERIOR))}},t.prototype.computeLabelling=function(n){var i=this;e.prototype.computeLabelling.call(this,n),this._label=new Vn(Ot.NONE);for(var r=this.iterator();r.hasNext();)for(var a=r.next(),h=a.getEdge(),u=h.getLabel(),_=0;_<2;_++){var w=u.getLocation(_);(w===Ot.INTERIOR||w===Ot.BOUNDARY)&&i._label.setLocation(_,Ot.INTERIOR)}},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(Ur),qx=function(e){function t(){e.apply(this,arguments)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.createNode=function(n){return new zg(n,new gE)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(nf),Zl=function e(){this._pts=null,this._orientation=null;var t=arguments[0];this._pts=t,this._orientation=e.orientation(t)};Zl.prototype.compareTo=function(e){var t=e,n=Zl.compareOriented(this._pts,this._orientation,t._pts,t._orientation);return n};Zl.prototype.interfaces_=function(){return[_s]};Zl.prototype.getClass=function(){return Zl};Zl.orientation=function(e){return xn.increasingDirection(e)===1};Zl.compareOriented=function(e,t,n,i){for(var r=t?1:-1,a=i?1:-1,h=t?e.length:-1,u=i?n.length:-1,_=t?0:e.length-1,w=i?0:n.length-1;;){var S=e[_].compareTo(n[w]);if(S!==0)return S;_+=r,w+=a;var E=_===h,M=w===u;if(E&&!M)return-1;if(!E&&M)return 1;if(E&&M)return 0}};var zs=function(){this._edges=new _e,this._ocaMap=new Br};zs.prototype.print=function(e){var t=this;e.print("MULTILINESTRING ( ");for(var n=0;n0&&e.print(","),e.print("(");for(var r=i.getCoordinates(),a=0;a0&&e.print(","),e.print(r[a].x+" "+r[a].y);e.println(")")}e.print(") ")};zs.prototype.addAll=function(e){for(var t=this,n=e.iterator();n.hasNext();)t.add(n.next())};zs.prototype.findEdgeIndex=function(e){for(var t=this,n=0;n0||!t.coord.equals2D(r);a||i--;var h=new Array(i).fill(null),u=0;h[u++]=new Rt(e.coord);for(var _=e.segmentIndex+1;_<=t.segmentIndex;_++)h[u++]=n.edge.pts[_];return a&&(h[u]=t.coord),new ng(h,new Vn(this.edge._label))};za.prototype.add=function(e,t,n){var i=new fa(e,t,n),r=this._nodeMap.get(i);return r!==null?r:(this._nodeMap.put(i,i),i)};za.prototype.isIntersection=function(e){for(var t=this.iterator();t.hasNext();){var n=t.next();if(n.coord.equals(e))return!0}return!1};za.prototype.interfaces_=function(){return[]};za.prototype.getClass=function(){return za};var ku=function(){};ku.prototype.getChainStartIndices=function(e){var t=this,n=0,i=new _e;i.add(new sa(n));do{var r=t.findChainEnd(e,n);i.add(new sa(r)),n=r}while(nn?t:n};dl.prototype.getMinX=function(e){var t=this.pts[this.startIndex[e]].x,n=this.pts[this.startIndex[e+1]].x;return tn&&(r=1),e._depth[t][i]=r}}};Tr.prototype.getDelta=function(e){return this._depth[e][ae.RIGHT]-this._depth[e][ae.LEFT]};Tr.prototype.getLocation=function(e,t){return this._depth[e][t]<=0?Ot.EXTERIOR:Ot.INTERIOR};Tr.prototype.toString=function(){return"A: "+this._depth[0][1]+","+this._depth[0][2]+" B: "+this._depth[1][1]+","+this._depth[1][2]};Tr.prototype.add=function(){var e=this;if(arguments.length===1)for(var t=arguments[0],n=0;n<2;n++)for(var i=1;i<3;i++){var r=t.getLocation(n,i);(r===Ot.EXTERIOR||r===Ot.INTERIOR)&&(e.isNull(n,i)?e._depth[n][i]=Tr.depthAtLocation(r):e._depth[n][i]+=Tr.depthAtLocation(r))}else if(arguments.length===3){var a=arguments[0],h=arguments[1],u=arguments[2];u===Ot.INTERIOR&&this._depth[a][h]++}};Tr.prototype.interfaces_=function(){return[]};Tr.prototype.getClass=function(){return Tr};Tr.depthAtLocation=function(e){return e===Ot.EXTERIOR?0:e===Ot.INTERIOR?1:Tr.NULL_VALUE};Zx.NULL_VALUE.get=function(){return-1};Object.defineProperties(Tr,Zx);var ng=function(e){function t(){if(e.call(this),this.pts=null,this._env=null,this.eiList=new za(this),this._name=null,this._mce=null,this._isIsolated=!0,this._depth=new Tr,this._depthDelta=0,arguments.length===1){var n=arguments[0];t.call(this,n,null)}else if(arguments.length===2){var i=arguments[0],r=arguments[1];this.pts=i,this._label=r}}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getDepth=function(){return this._depth},t.prototype.getCollapsedEdge=function(){var n=new Array(2).fill(null);n[0]=this.pts[0],n[1]=this.pts[1];var i=new t(n,Vn.toLineLabel(this._label));return i},t.prototype.isIsolated=function(){return this._isIsolated},t.prototype.getCoordinates=function(){return this.pts},t.prototype.setIsolated=function(n){this._isIsolated=n},t.prototype.setName=function(n){this._name=n},t.prototype.equals=function(n){var i=this;if(!(n instanceof t))return!1;var r=n;if(this.pts.length!==r.pts.length)return!1;for(var a=!0,h=!0,u=this.pts.length,_=0;_0?this.pts[0]:null;if(arguments.length===1){var n=arguments[0];return this.pts[n]}},t.prototype.print=function(n){var i=this;n.print("edge "+this._name+": "),n.print("LINESTRING (");for(var r=0;r0&&n.print(","),n.print(i.pts[r].x+" "+i.pts[r].y);n.print(") "+this._label+" "+this._depthDelta)},t.prototype.computeIM=function(n){t.updateIM(this._label,n)},t.prototype.isCollapsed=function(){return!this._label.isArea()||this.pts.length!==3?!1:!!this.pts[0].equals(this.pts[2])},t.prototype.isClosed=function(){return this.pts[0].equals(this.pts[this.pts.length-1])},t.prototype.getMaximumSegmentIndex=function(){return this.pts.length-1},t.prototype.getDepthDelta=function(){return this._depthDelta},t.prototype.getNumPoints=function(){return this.pts.length},t.prototype.printReverse=function(n){var i=this;n.print("edge "+this._name+": ");for(var r=this.pts.length-1;r>=0;r--)n.print(i.pts[r]+" ");n.println("")},t.prototype.getMonotoneChainEdge=function(){return this._mce===null&&(this._mce=new dl(this)),this._mce},t.prototype.getEnvelope=function(){var n=this;if(this._env===null){this._env=new Oe;for(var i=0;i0&&i.append(","),i.append(n.pts[r].x+" "+n.pts[r].y);return i.append(") "+this._label+" "+this._depthDelta),i.toString()},t.prototype.isPointwiseEqual=function(n){var i=this;if(this.pts.length!==n.pts.length)return!1;for(var r=0;ri||this._maxya;if(h)return!1;var u=this.intersectsToleranceSquare(e,t);return fn.isTrue(!(h&&u),"Found bad envelope test"),u};po.prototype.initCorners=function(e){var t=.5;this._minx=e.x-t,this._maxx=e.x+t,this._miny=e.y-t,this._maxy=e.y+t,this._corner[0]=new Rt(this._maxx,this._maxy),this._corner[1]=new Rt(this._minx,this._maxy),this._corner[2]=new Rt(this._minx,this._miny),this._corner[3]=new Rt(this._maxx,this._miny)};po.prototype.intersects=function(e,t){return this._scaleFactor===1?this.intersectsScaled(e,t):(this.copyScaled(e,this._p0Scaled),this.copyScaled(t,this._p1Scaled),this.intersectsScaled(this._p0Scaled,this._p1Scaled))};po.prototype.scale=function(e){return Math.round(e*this._scaleFactor)};po.prototype.getCoordinate=function(){return this._originalPt};po.prototype.copyScaled=function(e,t){t.x=this.scale(e.x),t.y=this.scale(e.y)};po.prototype.getSafeEnvelope=function(){if(this._safeEnv===null){var e=po.SAFE_ENV_EXPANSION_FACTOR/this._scaleFactor;this._safeEnv=new Oe(this._originalPt.x-e,this._originalPt.x+e,this._originalPt.y-e,this._originalPt.y+e)}return this._safeEnv};po.prototype.intersectsPixelClosure=function(e,t){return this._li.computeIntersection(e,t,this._corner[0],this._corner[1]),!!(this._li.hasIntersection()||(this._li.computeIntersection(e,t,this._corner[1],this._corner[2]),this._li.hasIntersection())||(this._li.computeIntersection(e,t,this._corner[2],this._corner[3]),this._li.hasIntersection())||(this._li.computeIntersection(e,t,this._corner[3],this._corner[0]),this._li.hasIntersection()))};po.prototype.intersectsToleranceSquare=function(e,t){var n=!1,i=!1;return this._li.computeIntersection(e,t,this._corner[0],this._corner[1]),!!(this._li.isProper()||(this._li.computeIntersection(e,t,this._corner[1],this._corner[2]),this._li.isProper())||(this._li.hasIntersection()&&(n=!0),this._li.computeIntersection(e,t,this._corner[2],this._corner[3]),this._li.isProper())||(this._li.hasIntersection()&&(i=!0),this._li.computeIntersection(e,t,this._corner[3],this._corner[0]),this._li.isProper())||n&&i||e.equals(this._pt)||t.equals(this._pt))};po.prototype.addSnappedNode=function(e,t){var n=e.getCoordinate(t),i=e.getCoordinate(t+1);return this.intersects(n,i)?(e.addIntersection(this.getCoordinate(),t),!0):!1};po.prototype.interfaces_=function(){return[]};po.prototype.getClass=function(){return po};Hx.SAFE_ENV_EXPANSION_FACTOR.get=function(){return .75};Object.defineProperties(po,Hx);var sd=function(){this.tempEnv1=new Oe,this.selectedSegment=new Be};sd.prototype.select=function(){if(arguments.length!==1&&arguments.length===2){var e=arguments[0],t=arguments[1];e.getLineSegment(t,this.selectedSegment),this.select(this.selectedSegment)}};sd.prototype.interfaces_=function(){return[]};sd.prototype.getClass=function(){return sd};var af=function(){this._index=null;var e=arguments[0];this._index=e},Xx={HotPixelSnapAction:{configurable:!0}};af.prototype.snap=function(){if(arguments.length===1){var e=arguments[0];return this.snap(e,null,-1)}else if(arguments.length===3){var t=arguments[0],n=arguments[1],i=arguments[2],r=t.getSafeEnvelope(),a=new $x(t,n,i);return this._index.query(r,{interfaces_:function(){return[jl]},visitItem:function(h){var u=h;u.select(r,a)}}),a.isNodeAdded()}};af.prototype.interfaces_=function(){return[]};af.prototype.getClass=function(){return af};Xx.HotPixelSnapAction.get=function(){return $x};Object.defineProperties(af,Xx);var $x=function(e){function t(){e.call(this),this._hotPixel=null,this._parentEdge=null,this._hotPixelVertexIndex=null,this._isNodeAdded=!1;var n=arguments[0],i=arguments[1],r=arguments[2];this._hotPixel=n,this._parentEdge=i,this._hotPixelVertexIndex=r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.isNodeAdded=function(){return this._isNodeAdded},t.prototype.select=function(){if(arguments.length===2){var n=arguments[0],i=arguments[1],r=n.getContext();if(this._parentEdge!==null&&r===this._parentEdge&&i===this._hotPixelVertexIndex)return null;this._isNodeAdded=this._hotPixel.addSnappedNode(r,i)}else return e.prototype.select.apply(this,arguments)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(sd),Ec=function(){this._li=null,this._interiorIntersections=null;var e=arguments[0];this._li=e,this._interiorIntersections=new _e};Ec.prototype.processIntersections=function(e,t,n,i){var r=this;if(e===n&&t===i)return null;var a=e.getCoordinates()[t],h=e.getCoordinates()[t+1],u=n.getCoordinates()[i],_=n.getCoordinates()[i+1];if(this._li.computeIntersection(a,h,u,_),this._li.hasIntersection()&&this._li.isInteriorIntersection()){for(var w=0;w=0;t--){try{e.bufferReducedPrecision(t)}catch(a){if(a instanceof fl)e._saveException=a;else throw a}finally{}if(e._resultGeometry!==null)return null}throw this._saveException}else if(arguments.length===1){var n=arguments[0],i=Cr.precisionScaleFactor(this._argGeom,this._distance,n),r=new On(i);this.bufferFixedPrecision(r)}};Cr.prototype.computeGeometry=function(){if(this.bufferOriginalPrecision(),this._resultGeometry!==null)return null;var e=this._argGeom.getFactory().getPrecisionModel();e.getType()===On.FIXED?this.bufferFixedPrecision(e):this.bufferReducedPrecision()};Cr.prototype.setQuadrantSegments=function(e){this._bufParams.setQuadrantSegments(e)};Cr.prototype.bufferOriginalPrecision=function(){try{var e=new Yr(this._bufParams);this._resultGeometry=e.buffer(this._argGeom,this._distance)}catch(t){if(t instanceof cl)this._saveException=t;else throw t}finally{}};Cr.prototype.getResultGeometry=function(e){return this._distance=e,this.computeGeometry(),this._resultGeometry};Cr.prototype.setEndCapStyle=function(e){this._bufParams.setEndCapStyle(e)};Cr.prototype.interfaces_=function(){return[]};Cr.prototype.getClass=function(){return Cr};Cr.bufferOp=function(){if(arguments.length===2){var e=arguments[0],t=arguments[1],n=new Cr(e),i=n.getResultGeometry(t);return i}else if(arguments.length===3){if(Number.isInteger(arguments[2])&&arguments[0]instanceof qe&&typeof arguments[1]=="number"){var r=arguments[0],a=arguments[1],h=arguments[2],u=new Cr(r);u.setQuadrantSegments(h);var _=u.getResultGeometry(a);return _}else if(arguments[2]instanceof Nn&&arguments[0]instanceof qe&&typeof arguments[1]=="number"){var w=arguments[0],S=arguments[1],E=arguments[2],M=new Cr(w,E),A=M.getResultGeometry(S);return A}}else if(arguments.length===4){var D=arguments[0],O=arguments[1],F=arguments[2],G=arguments[3],V=new Cr(D);V.setQuadrantSegments(F),V.setEndCapStyle(G);var Z=V.getResultGeometry(O);return Z}};Cr.precisionScaleFactor=function(e,t,n){var i=e.getEnvelopeInternal(),r=Ko.max(Math.abs(i.getMaxX()),Math.abs(i.getMaxY()),Math.abs(i.getMinX()),Math.abs(i.getMinY())),a=t>0?t:0,h=r+2*a,u=Math.trunc(Math.log(h)/Math.log(10)+1),_=n-u,w=Math.pow(10,_);return w};xf.CAP_ROUND.get=function(){return Nn.CAP_ROUND};xf.CAP_BUTT.get=function(){return Nn.CAP_FLAT};xf.CAP_FLAT.get=function(){return Nn.CAP_FLAT};xf.CAP_SQUARE.get=function(){return Nn.CAP_SQUARE};xf.MAX_PRECISION_DIGITS.get=function(){return 12};Object.defineProperties(Cr,xf);var Hr=function(){this._pt=[new Rt,new Rt],this._distance=on.NaN,this._isNull=!0};Hr.prototype.getCoordinates=function(){return this._pt};Hr.prototype.getCoordinate=function(e){return this._pt[e]};Hr.prototype.setMinimum=function(){if(arguments.length===1){var e=arguments[0];this.setMinimum(e._pt[0],e._pt[1])}else if(arguments.length===2){var t=arguments[0],n=arguments[1];if(this._isNull)return this.initialize(t,n),null;var i=t.distance(n);ithis._distance&&this.initialize(t,n,i)}};Hr.prototype.interfaces_=function(){return[]};Hr.prototype.getClass=function(){return Hr};var La=function(){};La.prototype.interfaces_=function(){return[]};La.prototype.getClass=function(){return La};La.computeDistance=function(){if(arguments[2]instanceof Hr&&arguments[0]instanceof Li&&arguments[1]instanceof Rt)for(var e=arguments[0],t=arguments[1],n=arguments[2],i=e.getCoordinates(),r=new Be,a=0;a0||this._isIn?Ot.INTERIOR:Ot.EXTERIOR)};Fs.prototype.interfaces_=function(){return[]};Fs.prototype.getClass=function(){return Fs};var Xr=function e(){if(this._component=null,this._segIndex=null,this._pt=null,arguments.length===2){var t=arguments[0],n=arguments[1];e.call(this,t,e.INSIDE_AREA,n)}else if(arguments.length===3){var i=arguments[0],r=arguments[1],a=arguments[2];this._component=i,this._segIndex=r,this._pt=a}},Yx={INSIDE_AREA:{configurable:!0}};Xr.prototype.isInsideArea=function(){return this._segIndex===Xr.INSIDE_AREA};Xr.prototype.getCoordinate=function(){return this._pt};Xr.prototype.getGeometryComponent=function(){return this._component};Xr.prototype.getSegmentIndex=function(){return this._segIndex};Xr.prototype.interfaces_=function(){return[]};Xr.prototype.getClass=function(){return Xr};Yx.INSIDE_AREA.get=function(){return-1};Object.defineProperties(Xr,Yx);var Vl=function(e){this._pts=e||null};Vl.prototype.filter=function(e){e instanceof Lo&&this._pts.add(e)};Vl.prototype.interfaces_=function(){return[la]};Vl.prototype.getClass=function(){return Vl};Vl.getPoints=function(){if(arguments.length===1){var e=arguments[0];return e instanceof Lo?Os.singletonList(e):Vl.getPoints(e,new _e)}else if(arguments.length===2){var t=arguments[0],n=arguments[1];return t instanceof Lo?n.add(t):t instanceof Kr&&t.apply(new Vl(n)),n}};var Tc=function(){this._locations=null;var e=arguments[0];this._locations=e};Tc.prototype.filter=function(e){(e instanceof Lo||e instanceof Li||e instanceof Ki)&&this._locations.add(new Xr(e,0,e.getCoordinate()))};Tc.prototype.interfaces_=function(){return[la]};Tc.prototype.getClass=function(){return Tc};Tc.getLocations=function(e){var t=new _e;return e.apply(new Tc(t)),t};var Pr=function(){if(this._geom=null,this._terminateDistance=0,this._ptLocator=new Fs,this._minDistanceLocation=null,this._minDistance=on.MAX_VALUE,arguments.length===2){var e=arguments[0],t=arguments[1];this._geom=[e,t],this._terminateDistance=0}else if(arguments.length===3){var n=arguments[0],i=arguments[1],r=arguments[2];this._geom=new Array(2).fill(null),this._geom[0]=n,this._geom[1]=i,this._terminateDistance=r}};Pr.prototype.computeContainmentDistance=function(){var e=this;if(arguments.length===0){var t=new Array(2).fill(null);if(this.computeContainmentDistance(0,t),this._minDistance<=this._terminateDistance)return null;this.computeContainmentDistance(1,t)}else if(arguments.length===2){var n=arguments[0],i=arguments[1],r=1-n,a=ul.getPolygons(this._geom[n]);if(a.size()>0){var h=Tc.getLocations(this._geom[r]);if(this.computeContainmentDistance(h,a,i),this._minDistance<=this._terminateDistance)return this._minDistanceLocation[r]=i[0],this._minDistanceLocation[n]=i[1],null}}else if(arguments.length===3){if(arguments[2]instanceof Array&&We(arguments[0],As)&&We(arguments[1],As)){for(var u=arguments[0],_=arguments[1],w=arguments[2],S=0;Sthis._minDistance)return null;for(var r=t.getCoordinates(),a=n.getCoordinate(),h=0;hthis._minDistance)return null;for(var A=S.getCoordinates(),D=E.getCoordinates(),O=0;Othis._distance&&this.initialize(t,n,i)}};Or.prototype.interfaces_=function(){return[]};Or.prototype.getClass=function(){return Or};var ea=function(){};ea.prototype.interfaces_=function(){return[]};ea.prototype.getClass=function(){return ea};ea.computeDistance=function(){if(arguments[2]instanceof Or&&arguments[0]instanceof Li&&arguments[1]instanceof Rt)for(var e=arguments[0],t=arguments[1],n=arguments[2],i=new Be,r=e.getCoordinates(),a=0;a1||e<=0)throw new pi("Fraction is not in range (0.0 - 1.0]");this._densifyFrac=e};hs.prototype.compute=function(e,t){this.computeOrientedDistance(e,t,this._ptDist),this.computeOrientedDistance(t,e,this._ptDist)};hs.prototype.distance=function(){return this.compute(this._g0,this._g1),this._ptDist.getDistance()};hs.prototype.computeOrientedDistance=function(e,t,n){var i=new Lc(t);if(e.apply(i),n.setMaximum(i.getMaxPointDistance()),this._densifyFrac>0){var r=new Xl(t,this._densifyFrac);e.apply(r),n.setMaximum(r.getMaxPointDistance())}};hs.prototype.orientedDistance=function(){return this.computeOrientedDistance(this._g0,this._g1,this._ptDist),this._ptDist.getDistance()};hs.prototype.interfaces_=function(){return[]};hs.prototype.getClass=function(){return hs};hs.distance=function(){if(arguments.length===2){var e=arguments[0],t=arguments[1],n=new hs(e,t);return n.distance()}else if(arguments.length===3){var i=arguments[0],r=arguments[1],a=arguments[2],h=new hs(i,r);return h.setDensifyFraction(a),h.distance()}};Qy.MaxPointDistanceFilter.get=function(){return Lc};Qy.MaxDensifiedByFractionDistanceFilter.get=function(){return Xl};Object.defineProperties(hs,Qy);var Lc=function(){this._maxPtDist=new Or,this._minPtDist=new Or,this._euclideanDist=new ea,this._geom=null;var e=arguments[0];this._geom=e};Lc.prototype.filter=function(e){this._minPtDist.initialize(),ea.computeDistance(this._geom,e,this._minPtDist),this._maxPtDist.setMaximum(this._minPtDist)};Lc.prototype.getMaxPointDistance=function(){return this._maxPtDist};Lc.prototype.interfaces_=function(){return[Da]};Lc.prototype.getClass=function(){return Lc};var Xl=function(){this._maxPtDist=new Or,this._minPtDist=new Or,this._geom=null,this._numSubSegs=0;var e=arguments[0],t=arguments[1];this._geom=e,this._numSubSegs=Math.trunc(Math.round(1/t))};Xl.prototype.filter=function(e,t){var n=this;if(t===0)return null;for(var i=e.getCoordinate(t-1),r=e.getCoordinate(t),a=(r.x-i.x)/this._numSubSegs,h=(r.y-i.y)/this._numSubSegs,u=0;un){this._isValid=!1;var r=i.getCoordinates();this._errorLocation=r[1],this._errorIndicator=e.getFactory().createLineString(r),this._errMsg="Distance between buffer curve and input is too large ("+this._maxDistanceFound+" at "+Ds.toLineString(r[0],r[1])+")"}};To.prototype.isValid=function(){var e=Math.abs(this._bufDistance),t=To.MAX_DISTANCE_DIFF_FRAC*e;return this._minValidDistance=e-t,this._maxValidDistance=e+t,this._input.isEmpty()||this._result.isEmpty()?!0:(this._bufDistance>0?this.checkPositiveValid():this.checkNegativeValid(),To.VERBOSE&&Mr.out.println("Min Dist= "+this._minDistanceFound+" err= "+(1-this._minDistanceFound/this._bufDistance)+" Max Dist= "+this._maxDistanceFound+" err= "+(this._maxDistanceFound/this._bufDistance-1)),this._isValid)};To.prototype.checkNegativeValid=function(){if(!(this._input instanceof Ki||this._input instanceof ka||this._input instanceof Kr))return null;var e=this.getPolygonLines(this._input);if(this.checkMinimumDistance(e,this._result,this._minValidDistance),!this._isValid)return null;this.checkMaximumDistance(e,this._result,this._maxValidDistance)};To.prototype.getErrorIndicator=function(){return this._errorIndicator};To.prototype.checkMinimumDistance=function(e,t,n){var i=new Pr(e,t,n);if(this._minDistanceFound=i.distance(),this._minDistanceFound0&&e>t&&(this._isValid=!1,this._errorMsg="Area of positive buffer is smaller than input",this._errorIndicator=this._result),this._distance<0&&e=2||this._distance>0)return null;this._result.isEmpty()||(this._isValid=!1,this._errorMsg="Result is non-empty",this._errorIndicator=this._result),this.report("ExpectedEmpty")};kr.prototype.report=function(e){if(!kr.VERBOSE)return null;Mr.out.println("Check "+e+": "+(this._isValid?"passed":"FAILED"))};kr.prototype.getErrorMessage=function(){return this._errorMsg};kr.prototype.interfaces_=function(){return[]};kr.prototype.getClass=function(){return kr};kr.isValidMsg=function(e,t,n){var i=new kr(e,t,n);return i.isValid()?null:i.getErrorMessage()};kr.isValid=function(e,t,n){var i=new kr(e,t,n);return!!i.isValid()};e0.VERBOSE.get=function(){return!1};e0.MAX_ENV_DIFF_FRAC.get=function(){return .012};Object.defineProperties(kr,e0);var da=function(){this._pts=null,this._data=null;var e=arguments[0],t=arguments[1];this._pts=e,this._data=t};da.prototype.getCoordinates=function(){return this._pts};da.prototype.size=function(){return this._pts.length};da.prototype.getCoordinate=function(e){return this._pts[e]};da.prototype.isClosed=function(){return this._pts[0].equals(this._pts[this._pts.length-1])};da.prototype.getSegmentOctant=function(e){return e===this._pts.length-1?-1:Sc.octant(this.getCoordinate(e),this.getCoordinate(e+1))};da.prototype.setData=function(e){this._data=e};da.prototype.getData=function(){return this._data};da.prototype.toString=function(){return Ds.toLineString(new Ri(this._pts))};da.prototype.interfaces_=function(){return[Oa]};da.prototype.getClass=function(){return da};var xr=function(){this._findAllIntersections=!1,this._isCheckEndSegmentsOnly=!1,this._li=null,this._interiorIntersection=null,this._intSegments=null,this._intersections=new _e,this._intersectionCount=0,this._keepIntersections=!0;var e=arguments[0];this._li=e,this._interiorIntersection=null};xr.prototype.getInteriorIntersection=function(){return this._interiorIntersection};xr.prototype.setCheckEndSegmentsOnly=function(e){this._isCheckEndSegmentsOnly=e};xr.prototype.getIntersectionSegments=function(){return this._intSegments};xr.prototype.count=function(){return this._intersectionCount};xr.prototype.getIntersections=function(){return this._intersections};xr.prototype.setFindAllIntersections=function(e){this._findAllIntersections=e};xr.prototype.setKeepIntersections=function(e){this._keepIntersections=e};xr.prototype.processIntersections=function(e,t,n,i){if(!this._findAllIntersections&&this.hasIntersection()||e===n&&t===i)return null;if(this._isCheckEndSegmentsOnly){var r=this.isEndSegment(e,t)||this.isEndSegment(n,i);if(!r)return null}var a=e.getCoordinates()[t],h=e.getCoordinates()[t+1],u=n.getCoordinates()[i],_=n.getCoordinates()[i+1];this._li.computeIntersection(a,h,u,_),this._li.hasIntersection()&&this._li.isInteriorIntersection()&&(this._intSegments=new Array(4).fill(null),this._intSegments[0]=a,this._intSegments[1]=h,this._intSegments[2]=u,this._intSegments[3]=_,this._interiorIntersection=this._li.getIntersection(0),this._keepIntersections&&this._intersections.add(this._interiorIntersection),this._intersectionCount++)};xr.prototype.isEndSegment=function(e,t){return t===0||t>=e.size()-2};xr.prototype.hasIntersection=function(){return this._interiorIntersection!==null};xr.prototype.isDone=function(){return this._findAllIntersections?!1:this._interiorIntersection!==null};xr.prototype.interfaces_=function(){return[Pu]};xr.prototype.getClass=function(){return xr};xr.createAllIntersectionsFinder=function(e){var t=new xr(e);return t.setFindAllIntersections(!0),t};xr.createAnyIntersectionFinder=function(e){return new xr(e)};xr.createIntersectionCounter=function(e){var t=new xr(e);return t.setFindAllIntersections(!0),t.setKeepIntersections(!1),t};var Bs=function(){this._li=new Fu,this._segStrings=null,this._findAllIntersections=!1,this._segInt=null,this._isValid=!0;var e=arguments[0];this._segStrings=e};Bs.prototype.execute=function(){if(this._segInt!==null)return null;this.checkInteriorIntersections()};Bs.prototype.getIntersections=function(){return this._segInt.getIntersections()};Bs.prototype.isValid=function(){return this.execute(),this._isValid};Bs.prototype.setFindAllIntersections=function(e){this._findAllIntersections=e};Bs.prototype.checkInteriorIntersections=function(){this._isValid=!0,this._segInt=new xr(this._li),this._segInt.setFindAllIntersections(this._findAllIntersections);var e=new Ky;if(e.setSegmentIntersector(this._segInt),e.computeNodes(this._segStrings),this._segInt.hasIntersection())return this._isValid=!1,null};Bs.prototype.checkValid=function(){if(this.execute(),!this._isValid)throw new fl(this.getErrorMessage(),this._segInt.getInteriorIntersection())};Bs.prototype.getErrorMessage=function(){if(this._isValid)return"no intersections found";var e=this._segInt.getIntersectionSegments();return"found non-noded intersection between "+Ds.toLineString(e[0],e[1])+" and "+Ds.toLineString(e[2],e[3])};Bs.prototype.interfaces_=function(){return[]};Bs.prototype.getClass=function(){return Bs};Bs.computeIntersections=function(e){var t=new Bs(e);return t.setFindAllIntersections(!0),t.isValid(),t.getIntersections()};var Du=function e(){this._nv=null;var t=arguments[0];this._nv=new Bs(e.toSegmentStrings(t))};Du.prototype.checkValid=function(){this._nv.checkValid()};Du.prototype.interfaces_=function(){return[]};Du.prototype.getClass=function(){return Du};Du.toSegmentStrings=function(e){for(var t=new _e,n=e.iterator();n.hasNext();){var i=n.next();t.add(new da(i.getCoordinates(),i))}return t};Du.checkValid=function(e){var t=new Du(e);t.checkValid()};var Mc=function(e){this._mapOp=e};Mc.prototype.map=function(e){for(var t=this,n=new _e,i=0;i0&&i<4&&!this._preserveType?this._factory.createLineString(n):this._factory.createLinearRing(n)};mo.prototype.interfaces_=function(){return[]};mo.prototype.getClass=function(){return mo};var Ba=function e(){if(this._snapTolerance=0,this._srcPts=null,this._seg=new Be,this._allowSnappingToSourceVertices=!1,this._isClosed=!1,arguments[0]instanceof Li&&typeof arguments[1]=="number"){var t=arguments[0],n=arguments[1];e.call(this,t.getCoordinates(),n)}else if(arguments[0]instanceof Array&&typeof arguments[1]=="number"){var i=arguments[0],r=arguments[1];this._srcPts=i,this._isClosed=e.isClosed(i),this._snapTolerance=r}};Ba.prototype.snapVertices=function(e,t){for(var n=this,i=this._isClosed?e.size()-1:e.size(),r=0;r=0&&e.add(h+1,new Rt(a),!1)}};Ba.prototype.findSegmentIndexToSnap=function(e,t){for(var n=this,i=on.MAX_VALUE,r=-1,a=0;at&&(t=i)}return t}else if(arguments.length===2){var r=arguments[0],a=arguments[1];return Math.min(Ni.computeOverlaySnapTolerance(r),Ni.computeOverlaySnapTolerance(a))}};Ni.computeSizeBasedSnapTolerance=function(e){var t=e.getEnvelopeInternal(),n=Math.min(t.getHeight(),t.getWidth()),i=n*Ni.SNAP_PRECISION_FACTOR;return i};Ni.snapToSelf=function(e,t,n){var i=new Ni(e);return i.snapToSelf(t,n)};Kx.SNAP_PRECISION_FACTOR.get=function(){return 1e-9};Object.defineProperties(Ni,Kx);var Jx=function(e){function t(n,i,r){e.call(this),this._snapTolerance=n||null,this._snapPts=i||null,this._isSelfSnap=r!==void 0?r:!1}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.snapLine=function(n,i){var r=new Ba(n,this._snapTolerance);return r.setAllowSnappingToSourceVertices(this._isSelfSnap),r.snapTo(i)},t.prototype.transformCoordinates=function(n,i){var r=n.toCoordinateArray(),a=this.snapLine(r,this._snapPts);return this._factory.getCoordinateSequenceFactory().create(a)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(mo),Wr=function(){this._isFirst=!0,this._commonMantissaBitsCount=53,this._commonBits=0,this._commonSignExp=null};Wr.prototype.getCommon=function(){return on.longBitsToDouble(this._commonBits)};Wr.prototype.add=function(e){var t=on.doubleToLongBits(e);if(this._isFirst)return this._commonBits=t,this._commonSignExp=Wr.signExpBits(this._commonBits),this._isFirst=!1,null;var n=Wr.signExpBits(t);if(n!==this._commonSignExp)return this._commonBits=0,null;this._commonMantissaBitsCount=Wr.numCommonMostSigMantissaBits(this._commonBits,t),this._commonBits=Wr.zeroLowerBits(this._commonBits,64-(12+this._commonMantissaBitsCount))};Wr.prototype.toString=function(){if(arguments.length===1){var e=arguments[0],t=on.longBitsToDouble(e),n=on.toBinaryString(e),i="0000000000000000000000000000000000000000000000000000000000000000"+n,r=i.substring(i.length-64),a=r.substring(0,1)+" "+r.substring(1,12)+"(exp) "+r.substring(12)+" [ "+t+" ]";return a}};Wr.prototype.interfaces_=function(){return[]};Wr.prototype.getClass=function(){return Wr};Wr.getBit=function(e,t){var n=1<>52};Wr.zeroLowerBits=function(e,t){var n=(1<=0;i--){if(Wr.getBit(e,i)!==Wr.getBit(t,i))return n;n++}return 52};var $l=function(){this._commonCoord=null,this._ccFilter=new kc},n0={CommonCoordinateFilter:{configurable:!0},Translater:{configurable:!0}};$l.prototype.addCommonBits=function(e){var t=new Yl(this._commonCoord);e.apply(t),e.geometryChanged()};$l.prototype.removeCommonBits=function(e){if(this._commonCoord.x===0&&this._commonCoord.y===0)return e;var t=new Rt(this._commonCoord);t.x=-t.x,t.y=-t.y;var n=new Yl(t);return e.apply(n),e.geometryChanged(),e};$l.prototype.getCommonCoordinate=function(){return this._commonCoord};$l.prototype.add=function(e){e.apply(this._ccFilter),this._commonCoord=this._ccFilter.getCommonCoordinate()};$l.prototype.interfaces_=function(){return[]};$l.prototype.getClass=function(){return $l};n0.CommonCoordinateFilter.get=function(){return kc};n0.Translater.get=function(){return Yl};Object.defineProperties($l,n0);var kc=function(){this._commonBitsX=new Wr,this._commonBitsY=new Wr};kc.prototype.filter=function(e){this._commonBitsX.add(e.x),this._commonBitsY.add(e.y)};kc.prototype.getCommonCoordinate=function(){return new Rt(this._commonBitsX.getCommon(),this._commonBitsY.getCommon())};kc.prototype.interfaces_=function(){return[Da]};kc.prototype.getClass=function(){return kc};var Yl=function(){this.trans=null;var e=arguments[0];this.trans=e};Yl.prototype.filter=function(e,t){var n=e.getOrdinate(t,0)+this.trans.x,i=e.getOrdinate(t,1)+this.trans.y;e.setOrdinate(t,0,n),e.setOrdinate(t,1,i)};Yl.prototype.isDone=function(){return!1};Yl.prototype.isGeometryChanged=function(){return!0};Yl.prototype.interfaces_=function(){return[Rs]};Yl.prototype.getClass=function(){return Yl};var wr=function(e,t){this._geom=new Array(2).fill(null),this._snapTolerance=null,this._cbr=null,this._geom[0]=e,this._geom[1]=t,this.computeSnapTolerance()};wr.prototype.selfSnap=function(e){var t=new Ni(e),n=t.snapTo(e,this._snapTolerance);return n};wr.prototype.removeCommonBits=function(e){this._cbr=new $l,this._cbr.add(e[0]),this._cbr.add(e[1]);var t=new Array(2).fill(null);return t[0]=this._cbr.removeCommonBits(e[0].copy()),t[1]=this._cbr.removeCommonBits(e[1].copy()),t};wr.prototype.prepareResult=function(e){return this._cbr.addCommonBits(e),e};wr.prototype.getResultGeometry=function(e){var t=this.snap(this._geom),n=ln.overlayOp(t[0],t[1],e);return this.prepareResult(n)};wr.prototype.checkValid=function(e){e.isValid()||Mr.out.println("Snapped geometry is invalid")};wr.prototype.computeSnapTolerance=function(){this._snapTolerance=Ni.computeOverlaySnapTolerance(this._geom[0],this._geom[1])};wr.prototype.snap=function(e){var t=this.removeCommonBits(e),n=Ni.snap(t[0],t[1],this._snapTolerance);return n};wr.prototype.interfaces_=function(){return[]};wr.prototype.getClass=function(){return wr};wr.overlayOp=function(e,t,n){var i=new wr(e,t);return i.getResultGeometry(n)};wr.union=function(e,t){return wr.overlayOp(e,t,ln.UNION)};wr.intersection=function(e,t){return wr.overlayOp(e,t,ln.INTERSECTION)};wr.symDifference=function(e,t){return wr.overlayOp(e,t,ln.SYMDIFFERENCE)};wr.difference=function(e,t){return wr.overlayOp(e,t,ln.DIFFERENCE)};var to=function(e,t){this._geom=new Array(2).fill(null),this._geom[0]=e,this._geom[1]=t};to.prototype.getResultGeometry=function(e){var t=null,n=!1,i=null;try{t=ln.overlayOp(this._geom[0],this._geom[1],e);var r=!0;r&&(n=!0)}catch(a){if(a instanceof cl)i=a;else throw a}finally{}if(!n)try{t=wr.overlayOp(this._geom[0],this._geom[1],e)}catch(a){throw a instanceof cl?i:a}finally{}return t};to.prototype.interfaces_=function(){return[]};to.prototype.getClass=function(){return to};to.overlayOp=function(e,t,n){var i=new to(e,t);return i.getResultGeometry(n)};to.union=function(e,t){return to.overlayOp(e,t,ln.UNION)};to.intersection=function(e,t){return to.overlayOp(e,t,ln.INTERSECTION)};to.symDifference=function(e,t){return to.overlayOp(e,t,ln.SYMDIFFERENCE)};to.difference=function(e,t){return to.overlayOp(e,t,ln.DIFFERENCE)};var ad=function(){this.mce=null,this.chainIndex=null;var e=arguments[0],t=arguments[1];this.mce=e,this.chainIndex=t};ad.prototype.computeIntersections=function(e,t){this.mce.computeIntersectsForChain(this.chainIndex,e.mce,e.chainIndex,t)};ad.prototype.interfaces_=function(){return[]};ad.prototype.getClass=function(){return ad};var ko=function e(){if(this._label=null,this._xValue=null,this._eventType=null,this._insertEvent=null,this._deleteEventIndex=null,this._obj=null,arguments.length===2){var t=arguments[0],n=arguments[1];this._eventType=e.DELETE,this._xValue=t,this._insertEvent=n}else if(arguments.length===3){var i=arguments[0],r=arguments[1],a=arguments[2];this._eventType=e.INSERT,this._label=i,this._xValue=r,this._obj=a}},i0={INSERT:{configurable:!0},DELETE:{configurable:!0}};ko.prototype.isDelete=function(){return this._eventType===ko.DELETE};ko.prototype.setDeleteEventIndex=function(e){this._deleteEventIndex=e};ko.prototype.getObject=function(){return this._obj};ko.prototype.compareTo=function(e){var t=e;return this._xValuet._xValue?1:this._eventTypet._eventType?1:0};ko.prototype.getInsertEvent=function(){return this._insertEvent};ko.prototype.isInsert=function(){return this._eventType===ko.INSERT};ko.prototype.isSameLabel=function(e){return this._label===null?!1:this._label===e._label};ko.prototype.getDeleteEventIndex=function(){return this._deleteEventIndex};ko.prototype.interfaces_=function(){return[_s]};ko.prototype.getClass=function(){return ko};i0.INSERT.get=function(){return 1};i0.DELETE.get=function(){return 2};Object.defineProperties(ko,i0);var ig=function(){};ig.prototype.interfaces_=function(){return[]};ig.prototype.getClass=function(){return ig};var Ar=function(){this._hasIntersection=!1,this._hasProper=!1,this._hasProperInterior=!1,this._properIntersectionPoint=null,this._li=null,this._includeProper=null,this._recordIsolated=null,this._isSelfIntersection=null,this._numIntersections=0,this.numTests=0,this._bdyNodes=null,this._isDone=!1,this._isDoneWhenProperInt=!1;var e=arguments[0],t=arguments[1],n=arguments[2];this._li=e,this._includeProper=t,this._recordIsolated=n};Ar.prototype.isTrivialIntersection=function(e,t,n,i){if(e===n&&this._li.getIntersectionNum()===1){if(Ar.isAdjacentSegments(t,i))return!0;if(e.isClosed()){var r=e.getNumPoints()-1;if(t===0&&i===r||i===0&&t===r)return!0}}return!1};Ar.prototype.getProperIntersectionPoint=function(){return this._properIntersectionPoint};Ar.prototype.setIsDoneIfProperInt=function(e){this._isDoneWhenProperInt=e};Ar.prototype.hasProperInteriorIntersection=function(){return this._hasProperInterior};Ar.prototype.isBoundaryPointInternal=function(e,t){for(var n=t.iterator();n.hasNext();){var i=n.next(),r=i.getCoordinate();if(e.isIntersection(r))return!0}return!1};Ar.prototype.hasProperIntersection=function(){return this._hasProper};Ar.prototype.hasIntersection=function(){return this._hasIntersection};Ar.prototype.isDone=function(){return this._isDone};Ar.prototype.isBoundaryPoint=function(e,t){return t===null?!1:!!(this.isBoundaryPointInternal(e,t[0])||this.isBoundaryPointInternal(e,t[1]))};Ar.prototype.setBoundaryNodes=function(e,t){this._bdyNodes=new Array(2).fill(null),this._bdyNodes[0]=e,this._bdyNodes[1]=t};Ar.prototype.addIntersections=function(e,t,n,i){if(e===n&&t===i)return null;this.numTests++;var r=e.getCoordinates()[t],a=e.getCoordinates()[t+1],h=n.getCoordinates()[i],u=n.getCoordinates()[i+1];this._li.computeIntersection(r,a,h,u),this._li.hasIntersection()&&(this._recordIsolated&&(e.setIsolated(!1),n.setIsolated(!1)),this._numIntersections++,this.isTrivialIntersection(e,t,n,i)||(this._hasIntersection=!0,(this._includeProper||!this._li.isProper())&&(e.addIntersections(this._li,t,0),n.addIntersections(this._li,i,1)),this._li.isProper()&&(this._properIntersectionPoint=this._li.getIntersection(0).copy(),this._hasProper=!0,this._isDoneWhenProperInt&&(this._isDone=!0),this.isBoundaryPoint(this._li,this._bdyNodes)||(this._hasProperInterior=!0))))};Ar.prototype.interfaces_=function(){return[]};Ar.prototype.getClass=function(){return Ar};Ar.isAdjacentSegments=function(e,t){return Math.abs(e-t)===1};var _E=function(e){function t(){e.call(this),this.events=new _e,this.nOverlaps=null}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.prepareEvents=function(){var n=this;Os.sort(this.events);for(var i=0;it||this._maxa?1:0};ld.prototype.interfaces_=function(){return[Xh]};ld.prototype.getClass=function(){return ld};var yE=function(e){function t(){e.call(this),this._item=null;var n=arguments[0],i=arguments[1],r=arguments[2];this._min=n,this._max=i,this._item=r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.query=function(n,i,r){if(!this.intersects(n,i))return null;r.visitItem(this._item)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(Va),vE=function(e){function t(){e.call(this),this._node1=null,this._node2=null;var n=arguments[0],i=arguments[1];this._node1=n,this._node2=i,this.buildExtent(this._node1,this._node2)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.buildExtent=function(n,i){this._min=Math.min(n._min,i._min),this._max=Math.max(n._max,i._max)},t.prototype.query=function(n,i,r){if(!this.intersects(n,i))return null;this._node1!==null&&this._node1.query(n,i,r),this._node2!==null&&this._node2.query(n,i,r)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t}(Va),Ua=function(){this._leaves=new _e,this._root=null,this._level=0};Ua.prototype.buildTree=function(){var e=this;Os.sort(this._leaves,new Va.NodeComparator);for(var t=this._leaves,n=null,i=new _e;;){if(e.buildLevel(t,i),i.size()===1)return i.get(0);n=t,t=i,i=n}};Ua.prototype.insert=function(e,t,n){if(this._root!==null)throw new Error("Index cannot be added to once it has been queried");this._leaves.add(new yE(e,t,n))};Ua.prototype.query=function(e,t,n){this.init(),this._root.query(e,t,n)};Ua.prototype.buildRoot=function(){if(this._root!==null)return null;this._root=this.buildTree()};Ua.prototype.printNode=function(e){Mr.out.println(Ds.toLineString(new Rt(e._min,this._level),new Rt(e._max,this._level)))};Ua.prototype.init=function(){if(this._root!==null)return null;this.buildRoot()};Ua.prototype.buildLevel=function(e,t){this._level++,t.clear();for(var n=0;n=2,"found LineString with single point"),this.insertBoundaryPoint(this._argIndex,i[0]),this.insertBoundaryPoint(this._argIndex,i[i.length-1])},t.prototype.getInvalidPoint=function(){return this._invalidPoint},t.prototype.getBoundaryPoints=function(){for(var n=this.getBoundaryNodes(),i=new Array(n.size()).fill(null),r=0,a=n.iterator();a.hasNext();){var h=a.next();i[r++]=h.getCoordinate().copy()}return i},t.prototype.getBoundaryNodes=function(){return this._boundaryNodes===null&&(this._boundaryNodes=this._nodes.getBoundaryNodes(this._argIndex)),this._boundaryNodes},t.prototype.addSelfIntersectionNode=function(n,i,r){if(this.isBoundaryNode(n,i))return null;r===Ot.BOUNDARY&&this._useBoundaryDeterminationRule?this.insertBoundaryPoint(n,i):this.insertPoint(n,i,r)},t.prototype.addPolygonRing=function(n,i,r){if(n.isEmpty())return null;var a=xn.removeRepeatedPoints(n.getCoordinates());if(a.length<4)return this._hasTooFewPoints=!0,this._invalidPoint=a[0],null;var h=i,u=r;we.isCCW(a)&&(h=r,u=i);var _=new ng(a,new Vn(this._argIndex,Ot.BOUNDARY,h,u));this._lineEdgeMap.put(n,_),this.insertEdge(_),this.insertPoint(this._argIndex,a[0],Ot.BOUNDARY)},t.prototype.insertPoint=function(n,i,r){var a=this._nodes.addNode(i),h=a.getLabel();h===null?a._label=new Vn(n,r):h.setLocation(n,r)},t.prototype.createEdgeSetIntersector=function(){return new _E},t.prototype.addSelfIntersectionNodes=function(n){for(var i=this,r=this._edges.iterator();r.hasNext();)for(var a=r.next(),h=a.getLabel().getLocation(n),u=a.eiList.iterator();u.hasNext();){var _=u.next();i.addSelfIntersectionNode(n,_.coord,h)}},t.prototype.add=function(){if(arguments.length===1){var n=arguments[0];if(n.isEmpty())return null;if(n instanceof ka&&(this._useBoundaryDeterminationRule=!1),n instanceof Ki)this.addPolygon(n);else if(n instanceof Li)this.addLineString(n);else if(n instanceof Lo)this.addPoint(n);else if(n instanceof ef)this.addCollection(n);else if(n instanceof Tu)this.addCollection(n);else if(n instanceof ka)this.addCollection(n);else if(n instanceof Kr)this.addCollection(n);else throw new Error(n.getClass().getName())}else return e.prototype.add.apply(this,arguments)},t.prototype.addCollection=function(n){for(var i=this,r=0;r50?(this._areaPtLocator===null&&(this._areaPtLocator=new uf(this._parentGeom)),this._areaPtLocator.locate(n)):this._ptLocator.locate(n,this._parentGeom)},t.prototype.findEdge=function(){if(arguments.length===1){var n=arguments[0];return this._lineEdgeMap.get(n)}else return e.prototype.findEdge.apply(this,arguments)},t.prototype.interfaces_=function(){return[]},t.prototype.getClass=function(){return t},t.determineBoundary=function(n,i){return n.isInBoundary(i)?Ot.BOUNDARY:Ot.INTERIOR},t}(vi),hf=function(){if(this._li=new Fu,this._resultPrecisionModel=null,this._arg=null,arguments.length===1){var e=arguments[0];this.setComputationPrecision(e.getPrecisionModel()),this._arg=new Array(1).fill(null),this._arg[0]=new Tp(0,e)}else if(arguments.length===2){var t=arguments[0],n=arguments[1],i=ds.OGC_SFS_BOUNDARY_RULE;t.getPrecisionModel().compareTo(n.getPrecisionModel())>=0?this.setComputationPrecision(t.getPrecisionModel()):this.setComputationPrecision(n.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new Tp(0,t,i),this._arg[1]=new Tp(1,n,i)}else if(arguments.length===3){var r=arguments[0],a=arguments[1],h=arguments[2];r.getPrecisionModel().compareTo(a.getPrecisionModel())>=0?this.setComputationPrecision(r.getPrecisionModel()):this.setComputationPrecision(a.getPrecisionModel()),this._arg=new Array(2).fill(null),this._arg[0]=new Tp(0,r,h),this._arg[1]=new Tp(1,a,h)}};hf.prototype.getArgGeometry=function(e){return this._arg[e].getGeometry()};hf.prototype.setComputationPrecision=function(e){this._resultPrecisionModel=e,this._li.setPrecisionModel(this._resultPrecisionModel)};hf.prototype.interfaces_=function(){return[]};hf.prototype.getClass=function(){return hf};var Eu=function(){};Eu.prototype.interfaces_=function(){return[]};Eu.prototype.getClass=function(){return Eu};Eu.map=function(){if(arguments[0]instanceof qe&&We(arguments[1],Eu.MapOp)){for(var e=arguments[0],t=arguments[1],n=new _e,i=0;i=e.size()?null:e.get(t)};Ui.union=function(e){var t=new Ui(e);return t.union()};ew.STRTREE_NODE_CAPACITY.get=function(){return 4};Object.defineProperties(Ui,ew);var rg=function(){};rg.prototype.interfaces_=function(){return[]};rg.prototype.getClass=function(){return rg};rg.union=function(e,t){if(e.isEmpty()||t.isEmpty()){if(e.isEmpty()&&t.isEmpty())return ln.createEmptyResult(ln.UNION,e,t,e.getFactory());if(e.isEmpty())return t.copy();if(t.isEmpty())return e.copy()}return e.checkNotGeometryCollection(e),e.checkNotGeometryCollection(t),to.overlayOp(e,t,ln.UNION)};function Bu(){return new og}function og(){this.reset()}og.prototype={constructor:og,reset:function(){this.s=this.t=0},add:function(e){g1(Am,e,this.t),g1(this,Am.s,this.s),this.s?this.t+=Am.t:this.s=Am.t},valueOf:function(){return this.s}};var Am=new og;function g1(e,t,n){var i=e.s=t+n,r=i-t,a=i-r;e.t=t-a+(n-r)}var Ci=1e-6,Xn=Math.PI,ll=Xn/2,_1=Xn/4,ml=Xn*2,vu=180/Xn,Qs=Xn/180,$r=Math.abs,bE=Math.atan,pf=Math.atan2,Xi=Math.cos,$i=Math.sin,wf=Math.sqrt;function nw(e){return e>1?0:e<-1?Xn:Math.acos(e)}function Ac(e){return e>1?ll:e<-1?-ll:Math.asin(e)}function Pp(){}function sg(e,t){e&&v1.hasOwnProperty(e.type)&&v1[e.type](e,t)}var y1={Feature:function(e,t){sg(e.geometry,t)},FeatureCollection:function(e,t){for(var n=e.features,i=-1,r=n.length;++iXn?e-ml:e<-Xn?e+ml:e,t]}Sy.invert=Sy;function wE(e,t,n){return(e%=ml)?t||n?iw(w1(e),S1(t,n)):w1(e):t||n?S1(t,n):Sy}function x1(e){return function(t,n){return t+=e,[t>Xn?t-ml:t<-Xn?t+ml:t,n]}}function w1(e){var t=x1(e);return t.invert=x1(-e),t}function S1(e,t){var n=Xi(e),i=$i(e),r=Xi(t),a=$i(t);function h(u,_){var w=Xi(_),S=Xi(u)*w,E=$i(u)*w,M=$i(_),A=M*n+S*i;return[pf(E*r-A*a,S*n-M*i),Ac(A*r+E*a)]}return h.invert=function(u,_){var w=Xi(_),S=Xi(u)*w,E=$i(u)*w,M=$i(_),A=M*r-E*a;return[pf(E*r+M*a,S*n+A*i),Ac(A*n-S*i)]},h}function SE(e,t,n,i,r,a){if(n){var h=Xi(t),u=$i(t),_=i*n;r==null?(r=t+i*ml,a=t-_/2):(r=I1(h,r),a=I1(h,a),(i>0?ra)&&(r+=i*ml));for(var w,S=r;i>0?S>a:S1&&e.push(e.pop().concat(e.shift()))},result:function(){var n=e;return e=[],t=null,n}}}function IE(e,t,n,i,r,a){var h=e[0],u=e[1],_=t[0],w=t[1],S=0,E=1,M=_-h,A=w-u,D;if(D=n-h,!(!M&&D>0)){if(D/=M,M<0){if(D0){if(D>E)return;D>S&&(S=D)}if(D=r-h,!(!M&&D<0)){if(D/=M,M<0){if(D>E)return;D>S&&(S=D)}else if(M>0){if(D0)){if(D/=A,A<0){if(D0){if(D>E)return;D>S&&(S=D)}if(D=a-u,!(!A&&D<0)){if(D/=A,A<0){if(D>E)return;D>S&&(S=D)}else if(A>0){if(D0&&(e[0]=h+S*M,e[1]=u+S*A),E<1&&(t[0]=h+E*M,t[1]=u+E*A),!0}}}}}function jm(e,t){return $r(e[0]-t[0])=0;--u)r.point((E=S[u])[0],E[1]);else i(M.x,M.p.x,-1,r);M=M.p}M=M.o,S=M.z,A=!A}while(!M.v);r.lineEnd()}}}function E1(e){if(t=e.length){for(var t,n=0,i=e[0],r;++nt?1:e>=t?0:NaN}function EE(e){return e.length===1&&(e=CE(e)),{left:function(t,n,i,r){for(i==null&&(i=0),r==null&&(r=t.length);i>>1;e(t[a],n)<0?i=a+1:r=a}return i},right:function(t,n,i,r){for(i==null&&(i=0),r==null&&(r=t.length);i>>1;e(t[a],n)>0?r=a:i=a+1}return i}}}function CE(e){return function(t,n){return sw(e(t),n)}}EE(sw);function aw(e){for(var t=e.length,n,i=-1,r=0,a,h;++i=0;)for(h=e[t],n=h.length;--n>=0;)a[--r]=h[n];return a}var kp=1e9,Om=-kp;function TE(e,t,n,i){function r(w,S){return e<=w&&w<=n&&t<=S&&S<=i}function a(w,S,E,M){var A=0,D=0;if(w==null||(A=h(w,E))!==(D=h(S,E))||_(w,S)<0^E>0)do M.point(A===0||A===3?e:n,A>1?i:t);while((A=(A+E+4)%4)!==D);else M.point(S[0],S[1])}function h(w,S){return $r(w[0]-e)0?0:3:$r(w[0]-n)0?2:1:$r(w[1]-t)0?1:0:S>0?3:2}function u(w,S){return _(w.x,S.x)}function _(w,S){var E=h(w,1),M=h(S,1);return E!==M?E-M:E===0?S[1]-w[1]:E===1?w[0]-S[0]:E===2?w[1]-S[1]:S[0]-w[0]}return function(w){var S=w,E=rw(),M,A,D,O,F,G,V,Z,$,Q,pt,st={point:St,lineStart:Et,lineEnd:te,polygonStart:kt,polygonEnd:mt};function St(ce,Jt){r(ce,Jt)&&S.point(ce,Jt)}function ut(){for(var ce=0,Jt=0,re=A.length;Jti&&(Dn-Fe)*(i-Xe)>(Sn-Xe)*(e-Fe)&&++ce:Sn<=i&&(Dn-Fe)*(i-Xe)<(Sn-Xe)*(e-Fe)&&--ce;return ce}function kt(){S=E,M=[],A=[],pt=!0}function mt(){var ce=ut(),Jt=pt&&ce,re=(M=aw(M)).length;(Jt||re)&&(w.polygonStart(),Jt&&(w.lineStart(),a(null,null,1,w),w.lineEnd()),re&&ow(M,u,ce,a,w),w.polygonEnd()),S=w,M=A=D=null}function Et(){st.point=Pt,A&&A.push(D=[]),Q=!0,$=!1,V=Z=NaN}function te(){M&&(Pt(O,F),G&&$&&E.rejoin(),M.push(E.result())),st.point=St,$&&S.lineEnd()}function Pt(ce,Jt){var re=r(ce,Jt);if(A&&D.push([ce,Jt]),Q)O=ce,F=Jt,G=re,Q=!1,re&&(S.lineStart(),S.point(ce,Jt));else if(re&&$)S.point(ce,Jt);else{var Re=[V=Math.max(Om,Math.min(kp,V)),Z=Math.max(Om,Math.min(kp,Z))],Ge=[ce=Math.max(Om,Math.min(kp,ce)),Jt=Math.max(Om,Math.min(kp,Jt))];IE(Re,Ge,e,t,n,i)?($||(S.lineStart(),S.point(Re[0],Re[1])),S.point(Ge[0],Ge[1]),re||S.lineEnd(),pt=!1):re&&(S.lineStart(),S.point(ce,Jt),pt=!1)}V=ce,Z=Jt,$=re}return st}}var ey=Bu();function LE(e,t){var n=t[0],i=t[1],r=[$i(n),-Xi(n),0],a=0,h=0;ey.reset();for(var u=0,_=e.length;u<_;++u)if(S=(w=e[u]).length)for(var w,S,E=w[S-1],M=E[0],A=E[1]/2+_1,D=$i(A),O=Xi(A),F=0;F=0?1:-1,St=st*pt,ut=St>Xn,kt=D*$;if(ey.add(pf(kt*st*$i(St),O*Q+kt*Xi(St))),a+=ut?pt+st*ml:pt,ut^M>=n^V>=n){var mt=ag(df(E),df(G));wy(mt);var Et=ag(r,mt);wy(Et);var te=(ut^pt>=0?-1:1)*Ac(Et[2]);(i>te||i===te&&(mt[0]||mt[1]))&&(h+=ut^pt>=0?1:-1)}}return(a<-Ci||aud&&(ud=e),tug&&(ug=t)}Bu();function lw(e,t,n,i){return function(r,a){var h=t(a),u=r.invert(i[0],i[1]),_=rw(),w=t(_),S=!1,E,M,A,D={point:O,lineStart:G,lineEnd:V,polygonStart:function(){D.point=Z,D.lineStart=$,D.lineEnd=Q,M=[],E=[]},polygonEnd:function(){D.point=O,D.lineStart=G,D.lineEnd=V,M=aw(M);var pt=LE(E,u);M.length?(S||(a.polygonStart(),S=!0),ow(M,kE,pt,n,a)):pt&&(S||(a.polygonStart(),S=!0),a.lineStart(),n(null,null,1,a),a.lineEnd()),S&&(a.polygonEnd(),S=!1),M=E=null},sphere:function(){a.polygonStart(),a.lineStart(),n(null,null,1,a),a.lineEnd(),a.polygonEnd()}};function O(pt,st){var St=r(pt,st);e(pt=St[0],st=St[1])&&a.point(pt,st)}function F(pt,st){var St=r(pt,st);h.point(St[0],St[1])}function G(){D.point=F,h.lineStart()}function V(){D.point=O,h.lineEnd()}function Z(pt,st){A.push([pt,st]);var St=r(pt,st);w.point(St[0],St[1])}function $(){w.lineStart(),A=[]}function Q(){Z(A[0][0],A[0][1]),w.lineEnd();var pt=w.clean(),st=_.result(),St,ut=st.length,kt,mt,Et;if(A.pop(),E.push(A),A=null,!!ut){if(pt&1){if(mt=st[0],(kt=mt.length-1)>0){for(S||(a.polygonStart(),S=!0),a.lineStart(),St=0;St1&&pt&2&&st.push(st.pop().concat(st.shift())),M.push(st.filter(PE))}}return D}}function PE(e){return e.length>1}function kE(e,t){return((e=e.x)[0]<0?e[1]-ll-Ci:ll-e[1])-((t=t.x)[0]<0?t[1]-ll-Ci:ll-t[1])}const L1=lw(function(){return!0},AE,RE,[-Xn,-ll]);function AE(e){var t=NaN,n=NaN,i=NaN,r;return{lineStart:function(){e.lineStart(),r=1},point:function(a,h){var u=a>0?Xn:-Xn,_=$r(a-t);$r(_-Xn)0?ll:-ll),e.point(i,n),e.lineEnd(),e.lineStart(),e.point(u,n),e.point(a,n),r=0):i!==u&&_>=Xn&&($r(t-i)Ci?bE(($i(t)*(a=Xi(i))*$i(n)-$i(i)*(r=Xi(t))*$i(e))/(r*a*h)):(t+i)/2}function RE(e,t,n,i){var r;if(e==null)r=n*ll,i.point(-Xn,r),i.point(0,r),i.point(Xn,r),i.point(Xn,0),i.point(Xn,-r),i.point(0,-r),i.point(-Xn,-r),i.point(-Xn,0),i.point(-Xn,r);else if($r(e[0]-t[0])>Ci){var a=e[0]0,r=$r(n)>Ci;function a(S,E,M,A){SE(A,e,t,M,S,E)}function h(S,E){return Xi(S)*Xi(E)>n}function u(S){var E,M,A,D,O;return{lineStart:function(){D=A=!1,O=1},point:function(F,G){var V=[F,G],Z,$=h(F,G),Q=i?$?0:w(F,G):$?w(F+(F<0?Xn:-Xn),G):0;if(!E&&(D=A=$)&&S.lineStart(),$!==A&&(Z=_(E,V),(!Z||jm(E,Z)||jm(V,Z))&&(V[0]+=Ci,V[1]+=Ci,$=h(V[0],V[1]))),$!==A)O=0,$?(S.lineStart(),Z=_(V,E),S.point(Z[0],Z[1])):(Z=_(E,V),S.point(Z[0],Z[1]),S.lineEnd()),E=Z;else if(r&&E&&i^$){var pt;!(Q&M)&&(pt=_(V,E,!0))&&(O=0,i?(S.lineStart(),S.point(pt[0][0],pt[0][1]),S.point(pt[1][0],pt[1][1]),S.lineEnd()):(S.point(pt[1][0],pt[1][1]),S.lineEnd(),S.lineStart(),S.point(pt[0][0],pt[0][1])))}$&&(!E||!jm(E,V))&&S.point(V[0],V[1]),E=V,A=$,M=Q},lineEnd:function(){A&&S.lineEnd(),E=null},clean:function(){return O|(D&&A)<<1}}}function _(S,E,M){var A=df(S),D=df(E),O=[1,0,0],F=ag(A,D),G=Dm(F,F),V=F[0],Z=G-V*V;if(!Z)return!M&&S;var $=n*G/Z,Q=-n*V/Z,pt=ag(O,F),st=Rm(O,$),St=Rm(F,Q);ty(st,St);var ut=pt,kt=Dm(st,ut),mt=Dm(ut,ut),Et=kt*kt-mt*(Dm(st,st)-1);if(!(Et<0)){var te=wf(Et),Pt=Rm(ut,(-kt-te)/mt);if(ty(Pt,st),Pt=xy(Pt),!M)return Pt;var ce=S[0],Jt=E[0],re=S[1],Re=E[1],Ge;Jt0^Pt[1]<($r(Pt[0]-ce)Xn^(ce<=Pt[0]&&Pt[0]<=Jt)){var Xe=Rm(ut,(-kt+te)/mt);return ty(Xe,st),[Pt,xy(Xe)]}}}function w(S,E){var M=i?e:Xn-e,A=0;return S<-M?A|=1:S>M&&(A|=2),E<-M?A|=4:E>M&&(A|=8),A}return lw(h,u,a,i?[0,-e]:[-Xn,e-Xn])}function uw(e){return function(t){var n=new Iy;for(var i in e)n[i]=e[i];return n.stream=t,n}}function Iy(){}Iy.prototype={constructor:Iy,point:function(e,t){this.stream.point(e,t)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};function cw(e,t,n){var i=t[1][0]-t[0][0],r=t[1][1]-t[0][1],a=e.clipExtent&&e.clipExtent();e.scale(150).translate([0,0]),a!=null&&e.clipExtent(null),xE(n,e.stream(T1));var h=T1.result(),u=Math.min(i/(h[1][0]-h[0][0]),r/(h[1][1]-h[0][1])),_=+t[0][0]+(i-u*(h[1][0]+h[0][0]))/2,w=+t[0][1]+(r-u*(h[1][1]+h[0][1]))/2;return a!=null&&e.clipExtent(a),e.scale(u*150).translate([_,w])}function OE(e,t,n){return cw(e,[[0,0],t],n)}var M1=16,zE=Xi(30*Qs);function P1(e,t){return+t?BE(e,t):FE(e)}function FE(e){return uw({point:function(t,n){t=e(t,n),this.stream.point(t[0],t[1])}})}function BE(e,t){function n(i,r,a,h,u,_,w,S,E,M,A,D,O,F){var G=w-i,V=S-r,Z=G*G+V*V;if(Z>4*t&&O--){var $=h+M,Q=u+A,pt=_+D,st=wf($*$+Q*Q+pt*pt),St=Ac(pt/=st),ut=$r($r(pt)-1)t||$r((G*te+V*Pt)/Z-.5)>.3||h*M+u*A+_*D2?Pt[2]%360*Qs:0,Et()):[w*vu,S*vu,E*vu]},ut.precision=function(Pt){return arguments.length?(pt=P1(mt,Q=Pt*Pt),te()):wf(Q)},ut.fitExtent=function(Pt,ce){return cw(ut,Pt,ce)},ut.fitSize=function(Pt,ce){return OE(ut,Pt,ce)};function Et(){A=iw(M=wE(w,S,E),t);var Pt=t(u,_);return a=i-Pt[0]*n,h=r+Pt[1]*n,te()}function te(){return st=St=null,ut}return function(){return t=e.apply(this,arguments),ut.invert=t.invert&&kt,Et()}}function hw(e){return function(t,n){var i=Xi(t),r=Xi(n),a=e(i*r);return[a*r*$i(t),a*$i(n)]}}function fw(e){return function(t,n){var i=wf(t*t+n*n),r=e(i),a=$i(r),h=Xi(r);return[pf(t*a,i*h),Ac(i&&n*a/i)]}}var jE=hw(function(e){return wf(2/(1+e))});jE.invert=fw(function(e){return 2*Ac(e/2)});var pw=hw(function(e){return(e=nw(e))&&e/$i(e)});pw.invert=fw(function(e){return e});function qE(){return UE(pw).scale(79.4188).clipAngle(180-.001)}function k1(e,t){return[e,t]}k1.invert=k1;function ZE(e,t,n){n=n||{};var i=n.units||"kilometers",r=n.steps||8;if(!e)throw new Error("geojson is required");if(typeof n!="object")throw new Error("options must be an object");if(typeof r!="number")throw new Error("steps must be an number");if(t===void 0)throw new Error("radius is required");if(r<=0)throw new Error("steps must be greater than 0");var a=[];switch(e.type){case"GeometryCollection":return Lx(e,function(h){var u=qm(h,t,i,r);u&&a.push(u)}),_y(a);case"FeatureCollection":return h1(e,function(h){var u=qm(h,t,i,r);u&&h1(u,function(_){_&&a.push(_)})}),_y(a)}return qm(e,t,i,r)}function qm(e,t,n,i){var r=e.properties||{},a=e.type==="Feature"?e.geometry:e;if(a.type==="GeometryCollection"){var h=[];return Lx(e,function(O){var F=qm(O,t,n,i);F&&h.push(F)}),_y(h)}var u=WE(a),_={type:a.type,coordinates:mw(a.coordinates,u)},w=new Yy,S=w.read(_),E=QI(tE(t,n),"meters"),M=Cr.bufferOp(S,E,i),A=new Fx;if(M=A.write(M),!dw(M.coordinates)){var D={type:M.type,coordinates:gw(M.coordinates,u)};return Cg(D,r)}}function dw(e){return Array.isArray(e[0])?dw(e[0]):isNaN(e[0])}function mw(e,t){return typeof e[0]!="object"?t(e):e.map(function(n){return mw(n,t)})}function gw(e,t){return typeof e[0]!="object"?t.invert(e):e.map(function(n){return gw(n,t)})}function WE(e){var t=nE(e).geometry.coordinates,n=[-t[0],-t[1]];return qE().rotate(n).scale(jo)}function HE(e,t){var n=Qm(e),i=Qm(t),r=e.properties||{},a=Sx.difference(n.coordinates,i.coordinates);return a.length===0?null:a.length===1?Ex(a[0],r):Cx(a,r)}function A1(e){let t;for(const n of e)t&&n[0]-t[0]>=180?n[0]-=360:t&&n[0]-t[0]<-180&&(n[0]+=360),t=n}function D1(e,t){const n=HE({type:"Polygon",coordinates:[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]]},e);if(!n)return;n.properties={isMask:"y"};const i=ZE(e,0);if(i.geometry.type==="Polygon")for(const r of i.geometry.coordinates)A1(r);else for(const r of i.geometry.coordinates)for(const a of r)A1(a);t({type:"FeatureCollection",features:[i,n]})}let R1={type:"FeatureCollection",features:[]};function XE(e,t,n=!0,i=!0,r={},a={},h={fill:{paint:{"fill-color":"#000","fill-opacity":.1},filter:["all",["==",["geometry-type"],"Polygon"],["has","isMask"]]},line:{layout:{"line-cap":"square"},paint:{"line-width":["case",["==",["geometry-type"],"Polygon"],2,3],"line-dasharray":[1,1],"line-color":"#3170fe"},filter:["!",["has","isMask"]]}}){let u,_=[],w,S;function E(){(h!=null&&h.fill||h!=null&&h.line)&&e.addSource("full-geom",{type:"geojson",data:R1}),h!=null&&h.fill&&e.addLayer({...h==null?void 0:h.fill,id:"full-geom-fill",type:"fill",source:"full-geom"}),h!=null&&h.line&&e.addLayer({...h==null?void 0:h.line,id:"full-geom-line",type:"line",source:"full-geom"})}e.loaded()?E():e.once("load",()=>{E()});const M=D=>{u==null||u({type:"mapClick",coordinates:[D.lngLat.lng,D.lngLat.lat]})};function A(D=!1){if(!t)throw new Error;const O=document.createElement("div");return D&&O.classList.add("marker-interactive"),new SI({props:{displayIn:"maplibre"},target:O}),new t.Marker({element:O,offset:[1,-13]})}return{setEventHandler(D){D?(u=D,e.on("click",M)):(u=void 0,e.off("click",M))},flyTo(D,O){e.flyTo({center:D,zoom:O,...r})},fitBounds(D,O,F){e.fitBounds([[D[0],D[1]],[D[2],D[3]]],{padding:O,maxZoom:F,...a})},indicateReverse(D){e.getCanvasContainer().style.cursor=D?"crosshair":""},setReverseMarker(D){!t||!n||(S?D?S.setLngLat(D):(S.remove(),S=void 0):D&&(S=(typeof n=="object"?new t.Marker(n):A()).setLngLat(D).addTo(e),S.getElement().classList.add("marker-reverse")))},setMarkers(D,O){if(!n)return;function F(G){var V;(V=e.getSource("full-geom"))==null||V.setData(G)}for(const G of _)G.remove();if(_.length=0,F(R1),!!t){if(O){let G=!1;if(O.geometry.type==="GeometryCollection"){const V=O.geometry.geometries.filter(Z=>Z.type==="Polygon"||Z.type==="MultiPolygon");if(V.length>0){let Z=V.pop();for(const $ of V)Z=eE(Z,$);D1({...O,geometry:Z},F),G=!0}else{const Z=O.geometry.geometries.filter($=>$.type==="LineString"||$.type==="MultiLineString");Z.length>0&&(F({...O,geometry:{type:"GeometryCollection",geometries:Z}}),G=!0)}}if(!G){if(O.geometry.type==="Polygon"||O.geometry.type==="MultiPolygon")D1(O,F);else if(O.geometry.type==="LineString"||O.geometry.type==="MultiLineString"){F(O);return}}n&&_.push((typeof n=="object"?new t.Marker(n):A()).setLngLat(O.center).addTo(e))}if(i)for(const G of D??[]){if(G===O)continue;const V=(typeof i=="object"?new t.Marker(i):A(!0)).setLngLat(G.center).setPopup(new t.Popup({offset:[1,-27],closeButton:!1,closeOnMove:!0,className:"maptiler-gc-popup"}).setText(G.place_type[0]==="reverse"?G.place_name:G.place_name.replace(/,.*/,""))).addTo(e),Z=V.getElement();Z.addEventListener("click",$=>{$.stopPropagation(),u==null||u({type:"markerClick",id:G.id})}),Z.addEventListener("mouseenter",()=>{u==null||u({type:"markerMouseEnter",id:G.id}),V.togglePopup()}),Z.addEventListener("mouseleave",()=>{u==null||u({type:"markerMouseLeave",id:G.id}),V.togglePopup()}),_.push(V)}}},setSelectedMarker(D){w&&w.getElement().classList.toggle("marker-selected",!1),w=D>-1?_[D]:void 0,w==null||w.getElement().classList.toggle("marker-selected",!0)},getCenterAndZoom(){const D=e.getCenter();return[e.getZoom(),D.lng,D.lat]}}}function $E(e){let t,n;return{c(){t=Bl("svg"),n=Bl("path"),It(n,"d","M13.12.706a.982.982 0 0 0-1.391 0L6.907 5.517 2.087.696a.982.982 0 1 0-1.391 1.39l4.821 4.821L.696 11.73a.982.982 0 1 0 1.39 1.39l4.821-4.821 4.822 4.821a.982.982 0 1 0 1.39-1.39L8.298 6.908l4.821-4.822a.988.988 0 0 0 0-1.38Z"),It(t,"viewBox","0 0 14 14"),It(t,"width","13"),It(t,"height","13"),It(t,"class","svelte-en2qvf")},m(i,r){vt(i,t,r),ot(t,n)},p:Pe,i:Pe,o:Pe,d(i){i&&yt(t)}}}class _w extends nn{constructor(t){super(),en(this,t,null,$E,He,{})}}function YE(e){let t,n;return{c(){t=Bl("svg"),n=Bl("path"),It(n,"d","M15 0C6.705 0 0 6.705 0 15C0 23.295 6.705 30 15 30C23.295 30 30 23.295 30 15C30 6.705 23.295 0 15 0ZM22.5 20.385L20.385 22.5L15 17.115L9.615 22.5L7.5 20.385L12.885 15L7.5 9.615L9.615 7.5L15 12.885L20.385 7.5L22.5 9.615L17.115 15L22.5 20.385Z"),It(t,"viewBox","0 0 30 30"),It(t,"fill","none"),It(t,"xmlns","http://www.w3.org/2000/svg"),It(t,"class","svelte-d2loi5")},m(i,r){vt(i,t,r),ot(t,n)},p:Pe,i:Pe,o:Pe,d(i){i&&yt(t)}}}class yw extends nn{constructor(t){super(),en(this,t,null,YE,He,{})}}function KE(e){let t,n;return{c(){t=dt("img"),Bn(t.src,n=e[3]+"area.svg")||It(t,"src",n),It(t,"alt",e[6]),It(t,"class","svelte-ltkwvy")},m(i,r){vt(i,t,r)},p(i,r){r&8&&!Bn(t.src,n=i[3]+"area.svg")&&It(t,"src",n),r&64&&It(t,"alt",i[6])},d(i){i&&yt(t)}}}function JE(e){let t,n;return{c(){t=dt("img"),Bn(t.src,n=e[3]+"reverse.svg")||It(t,"src",n),It(t,"alt",e[6]),It(t,"class","svelte-ltkwvy")},m(i,r){vt(i,t,r)},p(i,r){r&8&&!Bn(t.src,n=i[3]+"reverse.svg")&&It(t,"src",n),r&64&&It(t,"alt",i[6])},d(i){i&&yt(t)}}}function QE(e){let t,n;return{c(){t=dt("img"),Bn(t.src,n=e[3]+"poi.svg")||It(t,"src",n),It(t,"alt",e[6]),It(t,"class","svelte-ltkwvy")},m(i,r){vt(i,t,r)},p(i,r){r&8&&!Bn(t.src,n=i[3]+"poi.svg")&&It(t,"src",n),r&64&&It(t,"alt",i[6])},d(i){i&&yt(t)}}}function tC(e){let t,n;return{c(){t=dt("img"),Bn(t.src,n=e[3]+"postal_code.svg")||It(t,"src",n),It(t,"alt",e[6]),It(t,"class","svelte-ltkwvy")},m(i,r){vt(i,t,r)},p(i,r){r&8&&!Bn(t.src,n=i[3]+"postal_code.svg")&&It(t,"src",n),r&64&&It(t,"alt",i[6])},d(i){i&&yt(t)}}}function eC(e){let t,n;return{c(){t=dt("img"),Bn(t.src,n=e[3]+"street.svg")||It(t,"src",n),It(t,"alt",e[6]),It(t,"class","svelte-ltkwvy")},m(i,r){vt(i,t,r)},p(i,r){r&8&&!Bn(t.src,n=i[3]+"street.svg")&&It(t,"src",n),r&64&&It(t,"alt",i[6])},d(i){i&&yt(t)}}}function nC(e){let t,n;return{c(){t=dt("img"),Bn(t.src,n=e[3]+"road.svg")||It(t,"src",n),It(t,"alt",e[6]),It(t,"class","svelte-ltkwvy")},m(i,r){vt(i,t,r)},p(i,r){r&8&&!Bn(t.src,n=i[3]+"road.svg")&&It(t,"src",n),r&64&&It(t,"alt",i[6])},d(i){i&&yt(t)}}}function iC(e){let t,n;return{c(){t=dt("img"),Bn(t.src,n=e[3]+"housenumber.svg")||It(t,"src",n),It(t,"alt",e[6]),It(t,"class","svelte-ltkwvy")},m(i,r){vt(i,t,r)},p(i,r){r&8&&!Bn(t.src,n=i[3]+"housenumber.svg")&&It(t,"src",n),r&64&&It(t,"alt",i[6])},d(i){i&&yt(t)}}}function rC(e){let t,n,i,r;return{c(){t=dt("img"),Bn(t.src,n=e[5])||It(t,"src",n),It(t,"alt",e[4]),It(t,"class","svelte-ltkwvy")},m(a,h){vt(a,t,h),i||(r=Le(t,"error",e[14]),i=!0)},p(a,h){h&32&&!Bn(t.src,n=a[5])&&It(t,"src",n),h&16&&It(t,"alt",a[4])},d(a){a&&yt(t),i=!1,r()}}}function N1(e){let t,n;return{c(){t=dt("span"),n=de(e[6]),It(t,"class","secondary svelte-ltkwvy")},m(i,r){vt(i,t,r),ot(t,n)},p(i,r){r&64&&fi(n,i[6])},d(i){i&&yt(t)}}}function oC(e){var st,St;let t,n,i,r,a,h,u,_,w=(e[7]?e[0].place_name:e[0].place_name.replace(/,.*/,""))+"",S,E,M=e[2]==="always"||e[2]&&!e[0].address&&((st=e[0].properties)==null?void 0:st.kind)!=="road"&&((St=e[0].properties)==null?void 0:St.kind)!=="road_relation"&&!e[0].id.startsWith("address.")&&!e[0].id.startsWith("postal_code.")&&(!e[0].id.startsWith("poi.")||!e[5])&&!e[7],A,D,O=(e[7]?"":e[0].place_name.replace(/[^,]*,?\s*/,""))+"",F,G,V;function Z(ut,kt){var mt,Et;return kt&1&&(n=null),kt&1&&(i=null),kt&1&&(r=null),ut[5]?rC:ut[0].address?iC:((mt=ut[0].properties)==null?void 0:mt.kind)==="road"||((Et=ut[0].properties)==null?void 0:Et.kind)==="road_relation"?nC:(n==null&&(n=!!ut[0].id.startsWith("address.")),n?eC:(i==null&&(i=!!ut[0].id.startsWith("postal_code.")),i?tC:(r==null&&(r=!!ut[0].id.startsWith("poi.")),r?QE:ut[7]?JE:KE)))}let $=Z(e,-1),Q=$(e),pt=M&&N1(e);return{c(){t=dt("li"),Q.c(),a=Zt(),h=dt("span"),u=dt("span"),_=dt("span"),S=de(w),E=Zt(),pt&&pt.c(),A=Zt(),D=dt("span"),F=de(O),It(_,"class","primary svelte-ltkwvy"),It(u,"class","svelte-ltkwvy"),It(D,"class","line2 svelte-ltkwvy"),It(h,"class","texts svelte-ltkwvy"),It(t,"tabindex","0"),It(t,"data-selected",e[1]),It(t,"class","svelte-ltkwvy"),al(t,"selected",e[1])},m(ut,kt){vt(ut,t,kt),Q.m(t,null),ot(t,a),ot(t,h),ot(h,u),ot(u,_),ot(_,S),ot(u,E),pt&&pt.m(u,null),ot(h,A),ot(h,D),ot(D,F),G||(V=[Le(t,"mouseenter",e[12]),Le(t,"focus",e[13])],G=!0)},p(ut,[kt]){var mt,Et;$===($=Z(ut,kt))&&Q?Q.p(ut,kt):(Q.d(1),Q=$(ut),Q&&(Q.c(),Q.m(t,a))),kt&1&&w!==(w=(ut[7]?ut[0].place_name:ut[0].place_name.replace(/,.*/,""))+"")&&fi(S,w),kt&37&&(M=ut[2]==="always"||ut[2]&&!ut[0].address&&((mt=ut[0].properties)==null?void 0:mt.kind)!=="road"&&((Et=ut[0].properties)==null?void 0:Et.kind)!=="road_relation"&&!ut[0].id.startsWith("address.")&&!ut[0].id.startsWith("postal_code.")&&(!ut[0].id.startsWith("poi.")||!ut[5])&&!ut[7]),M?pt?pt.p(ut,kt):(pt=N1(ut),pt.c(),pt.m(u,null)):pt&&(pt.d(1),pt=null),kt&1&&O!==(O=(ut[7]?"":ut[0].place_name.replace(/[^,]*,?\s*/,""))+"")&&fi(F,O),kt&2&&It(t,"data-selected",ut[1]),kt&2&&al(t,"selected",ut[1])},i:Pe,o:Pe,d(ut){ut&&yt(t),Q.d(),pt&&pt.d(),G=!1,Ji(V)}}}function sC(e,t,n){var Z;let i,r,{feature:a}=t,{selected:h=!1}=t,{showPlaceType:u}=t,{missingIconsCache:_}=t,{iconsBaseUrl:w}=t;const S=(Z=a.properties)==null?void 0:Z.categories;let E,M,A=0,D=a.place_type[0]==="reverse";function O($){M&&_.add(M),n(10,A++,A)}function F($){ii.call(this,e,$)}function G($){ii.call(this,e,$)}const V=$=>O($.currentTarget);return e.$$set=$=>{"feature"in $&&n(0,a=$.feature),"selected"in $&&n(1,h=$.selected),"showPlaceType"in $&&n(2,u=$.showPlaceType),"missingIconsCache"in $&&n(9,_=$.missingIconsCache),"iconsBaseUrl"in $&&n(3,w=$.iconsBaseUrl)},e.$$.update=()=>{var $,Q,pt,st;if(e.$$.dirty&3640)do n(11,i--,i),n(4,E=S==null?void 0:S[i]),n(5,M=E?w+E.replace(/ /g,"_")+".svg":void 0);while(i>-1&&(!M||_.has(M)));e.$$.dirty&1&&n(6,r=a.id.startsWith("poi.")?(Q=($=a.properties)==null?void 0:$.categories)==null?void 0:Q.join(", "):((st=(pt=a.properties)==null?void 0:pt.place_type_name)==null?void 0:st[0])??a.place_type[0])},n(11,i=(S==null?void 0:S.length)??0),[a,h,u,w,E,M,r,D,O,_,A,i,F,G,V]}class aC extends nn{constructor(t){super(),en(this,t,sC,oC,He,{feature:0,selected:1,showPlaceType:2,missingIconsCache:9,iconsBaseUrl:3})}}function lC(e){let t;return{c(){t=dt("div"),t.innerHTML='',It(t,"class","svelte-7cmwmc")},m(n,i){vt(n,t,i)},p:Pe,i:Pe,o:Pe,d(n){n&&yt(t)}}}class uC extends nn{constructor(t){super(),en(this,t,null,lC,He,{})}}function cC(e){let t,n;return{c(){t=Bl("svg"),n=Bl("path"),It(n,"d","M30.003-26.765C13.46-26.765 0-14.158 0 1.337c0 23.286 24.535 42.952 28.39 46.04.24.192.402.316.471.376.323.282.732.424 1.142.424.41 0 .82-.142 1.142-.424.068-.06.231-.183.471-.376 3.856-3.09 28.39-22.754 28.39-46.04 0-15.495-13.46-28.102-30.003-28.102Zm1.757 12.469c4.38 0 7.858 1.052 10.431 3.158 2.595 2.105 3.89 4.913 3.89 8.422 0 2.34-.53 4.362-1.593 6.063-1.063 1.702-3.086 3.616-6.063 5.742-2.042 1.51-3.337 2.659-3.89 3.446-.532.787-.8 1.82-.8 3.096v1.914h-8.449V15.18c0-2.041.434-3.815 1.306-5.325.872-1.51 2.467-3.118 4.785-4.82 2.233-1.594 3.7-2.89 4.402-3.889a5.582 5.582 0 0 0 1.087-3.35c0-1.382-.51-2.435-1.531-3.158-1.02-.723-2.45-1.087-4.28-1.087-3.19 0-6.826 1.047-10.91 3.131l-3.472-6.986c4.742-2.659 9.77-3.992 15.087-3.992Zm-1.88 37.324c1.765 0 3.124.472 4.08 1.408.98.936 1.47 2.276 1.47 4.02 0 1.68-.49 3.007-1.47 3.985-.977.957-2.336 1.435-4.08 1.435-1.787 0-3.171-.465-4.15-1.4-.978-.958-1.47-2.298-1.47-4.02 0-1.787.48-3.14 1.436-4.054.957-.915 2.355-1.374 4.184-1.374Z"),It(t,"viewBox","0 0 60.006 21.412"),It(t,"width","14"),It(t,"height","20"),It(t,"class","svelte-en2qvf")},m(i,r){vt(i,t,r),ot(t,n)},p:Pe,i:Pe,o:Pe,d(i){i&&yt(t)}}}class hC extends nn{constructor(t){super(),en(this,t,null,cC,He,{})}}function fC(e){let t,n,i;return{c(){t=Bl("svg"),n=Bl("circle"),i=Bl("path"),It(n,"cx","4.789"),It(n,"cy","4.787"),It(n,"r","3.85"),ei(n,"stroke-width","1.875"),ei(n,"fill","none"),It(i,"d","M12.063 12.063 7.635 7.635"),ei(i,"stroke-width","1.875"),ei(i,"stroke-linecap","round"),It(t,"xmlns","http://www.w3.org/2000/svg"),It(t,"width","13"),It(t,"height","13"),It(t,"viewBox","0 0 13 13"),It(t,"class","svelte-1bpbt60")},m(r,a){vt(r,t,a),ot(t,n),ot(t,i)},p:Pe,i:Pe,o:Pe,d(r){r&&yt(t)}}}class pC extends nn{constructor(t){super(),en(this,t,null,fC,He,{})}}function dC(e,t,n){const i=t[1],r=t[0],a=i-r;return e===i&&n?e:((e-r)%a+a)%a+r}function O1(e){const t=[...e];return t[2]i[0]||r.maxZoom!=null&&r.maxZoomDate.now()){if(!Lp.coords)break t;return Lp.coords}let a;try{return a=await new Promise((h,u)=>{n.signal.addEventListener("abort",()=>{u(Error("aborted"))}),navigator.geolocation.getCurrentPosition(_=>{h([_.coords.longitude,_.coords.latitude].map(w=>w.toFixed(6)).join(","))},_=>{u(_)},r)}),a}catch{}finally{r.cachedLocationExpiry&&(Lp={time:Date.now(),coords:a})}if(n.signal.aborted)return}if(r.type==="server-geolocation")return"ip";if(i&&r.type==="map-center")return i[1].toFixed(6)+","+i[2].toFixed(6)}}const z1=/(NORTH|SOUTH|[NS])?[\s]*([+-]?[0-8]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(NORTH|SOUTH|[NS])?[\s]*[,/;]?[\s]*(EAST|WEST|[EW])?[\s]*([+-]?[0-1]?[0-9]?[0-9](?:[\.,]\d{3,}))[\s]*([•º°]?)[\s]*(EAST|WEST|[EW])?/i,F1=/(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(\.)\s*([0-5]?[0-9])\s*(\.)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(EAST|WEST|[EW])?/i,B1=/(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*(D(?:EG)?(?:REES)?)\s*([0-5]?[0-9])\s*(M(?:IN)?(?:UTES)?)\s*((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(S(?:EC)?(?:ONDS)?)\s*(EAST|WEST|[EW])?/i,V1=/(NORTH|SOUTH|[NS])?\s*([+-]?[0-8]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|’’|´´|["″”\.])?\s*(NORTH|SOUTH|[NS])?(?:\s*[,/;]\s*|\s*)(EAST|WEST|[EW])?\s*([+-]?[0-1]?[0-9]?[0-9])\s*([•º°\.:]|D(?:EG)?(?:REES)?)?\s*,?([0-5]?[0-9](?:[\.,]\d{1,})?)?\s*(['′´’\.:]|M(?:IN)?(?:UTES)?)?\s*,?((?:[0-5]?[0-9])(?:[\.,]\d{1,3})?)?\s*(''|′′|´´|’’|["″”\.])?\s*(EAST|WEST|[EW])?/i;function gC(e){if(!["DMS","DM","DD"].includes(e))throw new Error("invalid format specified");if(this.decimalCoordinates&&this.decimalCoordinates.trim()){if(e=="DD")return this.decimalCoordinates;const t=this.decimalCoordinates.split(",").map(h=>Number(h.trim()));let n=U1(t[0],e),i=U1(t[1],e);n.endsWith('.0"')&&i.endsWith('.0"')&&(n=n.replace(/\.0"$/,'"'),i=i.replace(/\.0"$/,'"'));const r=t[0]>=0?" N":" S",a=t[1]>=0?" E":" W";return`${n+r}, ${i+a}`}else throw new Error("no decimal coordinates to convert")}function U1(e,t){const n=Math.abs(e),i=Math.floor(n),r=(n-i)*60;if(t=="DM"){let u=_C(r,3).toFixed(3).padStart(6,"0");return`${i}° ${u}'`}let a=Math.floor(r),h=((r-a)*60).toFixed(1).padStart(4,"0");return a=a.toString().padStart(2,"0"),`${i}° ${a}' ${h}"`}function _C(e,t){const n=Math.pow(10,t);return Math.round((e+Number.EPSILON)*n)/n}function o0(e,t){t||(t=5),e=e.replace(/\s+/g," ").trim();let n=null,i=null,r="",a="",h=[],u=!1;if(z1.test(e))if(h=z1.exec(e),u=zm(h),u){if(n=h[2],i=h[6],n.includes(",")&&(n=n.replace(",",".")),i.includes(",")&&(i=i.replace(",",".")),Number(Math.round(n))==Number(n))throw new Error("integer only coordinate provided");if(Number(Math.round(i))==Number(i))throw new Error("integer only coordinate provided");h[1]?(r=h[1],a=h[5]):h[4]&&(r=h[4],a=h[8])}else throw new Error("invalid decimal coordinate format");else if(F1.test(e))if(h=F1.exec(e),u=zm(h),u)n=Math.abs(parseInt(h[2])),h[4]&&(n+=h[4]/60),h[6]&&(n+=h[6].replace(",",".")/3600),parseInt(h[2])<0&&(n=-1*n),i=Math.abs(parseInt(h[9])),h[11]&&(i+=h[11]/60),h[13]&&(i+=h[13].replace(",",".")/3600),parseInt(h[9])<0&&(i=-1*i),h[1]?(r=h[1],a=h[8]):h[7]&&(r=h[7],a=h[14]);else throw new Error("invalid DMS coordinates format");else if(B1.test(e))if(h=B1.exec(e),u=zm(h),u)n=Math.abs(parseInt(h[2])),h[4]&&(n+=h[4]/60),h[6]&&(n+=h[6]/3600),parseInt(h[2])<0&&(n=-1*n),i=Math.abs(parseInt(h[10])),h[12]&&(i+=h[12]/60),h[14]&&(i+=h[14]/3600),parseInt(h[10])<0&&(i=-1*i),h[1]?(r=h[1],a=h[9]):h[8]&&(r=h[8],a=h[16]);else throw new Error("invalid DMS coordinates format");else if(V1.test(e))if(h=V1.exec(e),u=zm(h),u)n=Math.abs(parseInt(h[2])),h[4]&&(n+=h[4]/60),h[6]&&(n+=h[6]/3600),parseInt(h[2])<0&&(n=-1*n),i=Math.abs(parseInt(h[10])),h[12]&&(i+=h[12]/60),h[14]&&(i+=h[14]/3600),parseInt(h[10])<0&&(i=-1*i),h[1]?(r=h[1],a=h[9]):h[8]&&(r=h[8],a=h[16]);else throw new Error("invalid coordinates format");if(u){if(Math.abs(i)>=180)throw new Error("invalid longitude value");if(Math.abs(n)>=90)throw new Error("invalid latitude value");if((r||a)&&(!r||!a))throw new Error("invalid coordinates format");if(r&&r==a)throw new Error("invalid coordinates format");let _=/S|SOUTH/i;_.test(r)&&n>0&&(n=-1*n),_=/W|WEST/i,_.test(a)&&i>0&&(i=-1*i);const w=h[0].trim();let S,E;const M=/[,/;\u0020]/g,A=w.match(M);if(A==null){const F=Math.floor(e.length/2);S=w.substring(0,F).trim(),E=w.substring(F).trim()}else{let F;A.length%2==1?F=Math.floor(A.length/2):F=A.length/2-1;let G=0;if(F==0)G=w.indexOf(A[0]),S=w.substring(0,G).trim(),E=w.substring(G+1).trim();else{let V=0,Z=0;for(;V<=F;)G=w.indexOf(A[V],Z),Z=G+1,V++;S=w.substring(0,G).trim(),E=w.substring(G+1).trim()}}const D=S.split(".");if(D.length==2&&D[1]==0&&D[1].length!=2)throw new Error("invalid coordinates format");const O=E.split(".");if(O.length==2&&O[1]==0&&O[1].length!=2)throw new Error("invalid coordinates format");if(/^\d+$/.test(S)||/^\d+$/.test(E))throw new Error("degree only coordinate/s provided");return isNaN(n)&&n.includes(",")&&(n=n.replace(",",".")),n=Number(Number(n).toFixed(t)),isNaN(i)&&i.includes(",")&&(i=i.replace(",",".")),i=Number(Number(i).toFixed(t)),Object.freeze({verbatimCoordinates:w,verbatimLatitude:S,verbatimLongitude:E,decimalLatitude:n,decimalLongitude:i,decimalCoordinates:`${n},${i}`,closeEnough:yC,toCoordinateFormat:gC})}else throw new Error("coordinates pattern match failed")}function zm(e){if(!isNaN(e[0]))return!1;const t=[...e];if(t.shift(),t.length%2>0)return!1;const n=/^[-+]?\d+([\.,]\d+)?$/,i=/[eastsouthnorthwest]+/i,r=t.length/2;for(let a=0;a{t.decimalLatitude?e.push(t):e.push({...t,...xC})}),[...e,...wC,...SC]}const EC=IC();o0.formats=EC.map(e=>e.verbatimCoordinates);const CC=o0;function j1(e,t,n){const i=e.slice();return i[81]=t[n],i[83]=n,i}function q1(e){let t,n;return t=new uC({}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function Z1(e){let t,n,i,r,a;return n=new hC({}),{c(){t=dt("button"),Wt(n.$$.fragment),It(t,"type","button"),It(t,"title",e[9]),It(t,"class","svelte-zh3kmv"),al(t,"active",e[0])},m(h,u){vt(h,t,u),jt(n,t,null),i=!0,r||(a=Le(t,"click",e[67]),r=!0)},p(h,u){(!i||u[0]&512)&&It(t,"title",h[9]),(!i||u[0]&1)&&al(t,"active",h[0])},i(h){i||(ft(n.$$.fragment,h),i=!0)},o(h){bt(n.$$.fragment,h),i=!1},d(h){h&&yt(t),qt(n),r=!1,a()}}}function TC(e){let t,n=[],i=new Map,r,a,h,u=ps(e[14]);const _=w=>w[81].id+(w[81].address?","+w[81].address:"");for(let w=0;w{st=null}),qn()),(!Z||ce[0]&2)&&al(w,"displayable",Pt[1]!==""),Pt[5]===!0?St?(St.p(Pt,ce),ce[0]&32&&ft(St,1)):(St=Z1(Pt),St.c(),ft(St,1),St.m(i,D)):St&&(jn(),bt(St,1,1,()=>{St=null}),qn()),kt&&kt.p&&(!Z||ce[1]&134217728)&&lr(kt,ut,Pt,Pt[58],Z?ar(ut,Pt[58],ce,null):ur(Pt[58]),null);let Jt=F;F=te(Pt),F===Jt?~F&&Et[F].p(Pt,ce):(G&&(jn(),bt(Et[Jt],1,1,()=>{Et[Jt]=null}),qn()),~F?(G=Et[F],G?G.p(Pt,ce):(G=Et[F]=mt[F](Pt),G.c()),ft(G,1),G.m(n,null)):G=null),(!Z||ce[0]&4&&V!==(V=$m(Pt[2])+" svelte-zh3kmv"))&&It(n,"class",V),(!Z||ce[0]&22)&&al(n,"can-collapse",Pt[4]&&Pt[1]==="")},i(Pt){Z||(ft(pt),ft(a.$$.fragment,Pt),ft(E.$$.fragment,Pt),ft(st),ft(St),ft(kt,Pt),ft(G),Z=!0)},o(Pt){bt(pt),bt(a.$$.fragment,Pt),bt(E.$$.fragment,Pt),bt(st),bt(St),bt(kt,Pt),bt(G),Z=!1},d(Pt){Pt&&(yt(t),yt(n)),qt(a),e[61](null),qt(E),st&&st.d(),St&&St.d(),kt&&kt.d(Pt),~F&&Et[F].d(),$=!1,Ji(Q)}}}function AC(e,t,n){let i,{$$slots:r={},$$scope:a}=t,{class:h=void 0}=t,{apiKey:u}=t,{bbox:_=void 0}=t,{clearButtonTitle:w="clear"}=t,{clearOnBlur:S=!1}=t,{collapsed:E=!1}=t,{country:M=void 0}=t,{debounceSearch:A=200}=t,{enableReverse:D=!1}=t,{errorMessage:O="Something went wrong…"}=t,{filter:F=()=>!0}=t,{flyTo:G=!0}=t,{fuzzyMatch:V=!0}=t,{language:Z=void 0}=t,{limit:$=void 0}=t,{mapController:Q=void 0}=t,{minLength:pt=2}=t,{noResultsMessage:st="Oops! Looks like you're trying to predict something that's not quite right. We can't seem to find what you're looking for. Maybe try double-checking your spelling or try a different search term. Keep on typing - we'll do our best to get you where you need to go!"}=t,{placeholder:St="Search"}=t,{proximity:ut=[{type:"server-geolocation"}]}=t,{reverseActive:kt=D==="always"}=t,{reverseButtonTitle:mt="toggle reverse geocoding"}=t,{searchValue:Et=""}=t,{showFullGeometry:te=!0}=t,{showPlaceType:Pt="ifNeeded"}=t,{showResultsWhileTyping:ce=!0}=t,{selectFirst:Jt=!0}=t,{flyToSelected:re=!1}=t,{markerOnSelected:Re=!0}=t,{types:Ge=void 0}=t,{excludeTypes:Te=!1}=t,{zoom:ze=16}=t,{maxZoom:Fe=18}=t,{apiUrl:Xe="https://api.maptiler.com/geocoding"}=t,{fetchParameters:Dn={}}=t,{iconsBaseUrl:Sn="https://cdn.maptiler.com/maptiler-geocoding-control/v1.2.2/icons/"}=t,{adjustUrlQuery:mn=J=>{}}=t;function ri(){Bt.focus()}function oi(){Bt.blur()}function $n(J,Tt=!0){n(1,Et=J),Tt?(n(15,wn=-1),yl()):(Qi(),setTimeout(()=>{Bt.focus(),Bt.select()}))}function ie(){n(14,Ht=void 0),n(55,Ee=void 0),n(15,wn=-1)}function Je(){n(54,Nt=[]),n(55,Ee=void 0)}let $e=!1,Ht,Nt,Ee,bi="",Bt,wn=-1,cr,gn=[],si,Do,vs,Gs;const ja=new Set,Dr=zu();fs(()=>{Q&&(Q.setEventHandler(void 0),Q.indicateReverse(!1),Q.setSelectedMarker(-1),Q.setMarkers(void 0,void 0))});function yl(J){if(Do&&(clearTimeout(Do),Do=void 0),wn>-1&&Ht)n(55,Ee=Ht[wn]),n(1,Et=Ee.place_type[0]==="reverse"?Ee.place_name:Ee.place_name.replace(/,.*/,"")),n(18,cr=void 0),n(54,Nt=void 0),n(15,wn=-1);else if(Et){const Tt=J||!bs(Et);se(Et,{exact:!0}).then(()=>{n(54,Nt=Ht),n(55,Ee=void 0),Tt&&ns()}).catch(_t=>n(18,cr=_t))}}function bs(J){try{return CC(J,6)}catch{return!1}}async function se(J,{byId:Tt=!1,exact:_t=!1}={}){n(18,cr=void 0),si==null||si.abort();const At=new AbortController;n(19,si=At);try{const Vt=bs(J),Xt=new URLSearchParams;if(Z!==void 0&&Xt.set("language",Array.isArray(Z)?Z.join(","):Z??""),Ge&&Xt.set("types",Ge.join(",")),Te&&Xt.set("excludeTypes",String(Te)),_&&Xt.set("bbox",_.map(tn=>tn.toFixed(6)).join(",")),M&&Xt.set("country",Array.isArray(M)?M.join(","):M),!Tt&&!Vt){const tn=await mC(Q,ut,At);tn&&Xt.set("proximity",tn),(_t||!ce)&&Xt.set("autocomplete","false"),Xt.set("fuzzyMatch",String(V))}$!==void 0&&(!Vt||(Ge==null?void 0:Ge.length)===1)&&Xt.set("limit",String($)),Xt.set("key",u),mn(Xt);const Yt=Xe+"/"+encodeURIComponent(Vt?Vt.decimalLongitude+","+Vt.decimalLatitude:J)+".json?"+Xt.toString();if(Yt===bi){Tt?(n(14,Ht=void 0),n(55,Ee=gn[0])):n(14,Ht=gn);return}bi=Yt;const ke=await fetch(Yt,{signal:At.signal,...Dn});if(!ke.ok)throw new Error(await ke.text());const Ne=await ke.json();Dr("response",{url:Yt,featureCollection:Ne}),Tt?(n(14,Ht=void 0),n(55,Ee=Ne.features[0]),gn=[Ee]):(n(14,Ht=Ne.features.filter(F)),Vt&&Ht.unshift({type:"Feature",properties:{},id:"reverse_"+Vt.decimalLongitude+"_"+Vt.decimalLatitude,text:Vt.decimalLatitude+", "+Vt.decimalLongitude,place_name:Vt.decimalLatitude+", "+Vt.decimalLongitude,place_type:["reverse"],center:[Vt.decimalLongitude,Vt.decimalLatitude],bbox:[Vt.decimalLongitude,Vt.decimalLatitude,Vt.decimalLongitude,Vt.decimalLatitude],geometry:{type:"Point",coordinates:[Vt.decimalLongitude,Vt.decimalLatitude]}}),gn=Ht,Vt&&Bt.focus())}catch(Vt){if(Vt&&typeof Vt=="object"&&"name"in Vt&&Vt.name==="AbortError")return;throw Vt}finally{At===si&&n(19,si=void 0)}}function ns(){var _t;if(!(Nt!=null&&Nt.length)||!G)return;const J=[180,90,-180,-90],Tt=!Nt.some(At=>!At.matching_text);for(const At of Nt)if(Tt||!At.matching_text)for(const Vt of[0,1,2,3])J[Vt]=Math[Vt<2?"min":"max"](J[Vt],((_t=At.bbox)==null?void 0:_t[Vt])??At.center[Vt%2]);Q&&Nt.length>0&&(Ee&&J[0]===J[2]&&J[1]===J[3]?Q.flyTo(Ee.center,ze):Q.fitBounds(O1(J),50,Fe))}function no(J){n(0,kt=D==="always"),n(14,Ht=void 0),n(55,Ee=void 0),n(15,wn=-1),$n(J[1].toFixed(6)+", "+dC(J[0],[-180,180],!0).toFixed(6),!1)}function vl(J){if(!Ht)return;let Tt=J.key==="ArrowDown"?1:J.key==="ArrowUp"?-1:0;Tt&&(wn===(Jt?0:-1)&&Tt===-1&&n(15,wn=Ht.length),n(15,wn+=Tt),wn>=Ht.length&&n(15,wn=-1),wn<0&&Jt&&n(15,wn=0),J.preventDefault())}function Qi(J=!0){if(n(18,cr=void 0),ce){if(Do&&clearTimeout(Do),Et.length{se(Tt).catch(_t=>n(18,cr=_t))},J?A:0)}else n(14,Ht=void 0),n(18,cr=void 0)}function fe(J){n(55,Ee=J),n(1,Et=J.place_name),n(15,wn=-1)}const un=()=>Bt.focus();function an(J){zr[J?"unshift":"push"](()=>{Bt=J,n(17,Bt)})}function Fi(){Et=this.value,n(1,Et),n(13,$e),n(27,S)}const is=()=>n(13,$e=!0),sn=()=>n(13,$e=!1),ba=()=>Qi(),ji=()=>{n(1,Et=""),Bt.focus()},lt=()=>n(0,kt=!kt),j=()=>n(18,cr=void 0),W=J=>n(15,wn=J),K=J=>fe(J),nt=()=>{Jt||n(15,wn=-1)},Ct=()=>{};return e.$$set=J=>{"class"in J&&n(2,h=J.class),"apiKey"in J&&n(25,u=J.apiKey),"bbox"in J&&n(26,_=J.bbox),"clearButtonTitle"in J&&n(3,w=J.clearButtonTitle),"clearOnBlur"in J&&n(27,S=J.clearOnBlur),"collapsed"in J&&n(4,E=J.collapsed),"country"in J&&n(28,M=J.country),"debounceSearch"in J&&n(29,A=J.debounceSearch),"enableReverse"in J&&n(5,D=J.enableReverse),"errorMessage"in J&&n(6,O=J.errorMessage),"filter"in J&&n(30,F=J.filter),"flyTo"in J&&n(31,G=J.flyTo),"fuzzyMatch"in J&&n(32,V=J.fuzzyMatch),"language"in J&&n(33,Z=J.language),"limit"in J&&n(34,$=J.limit),"mapController"in J&&n(35,Q=J.mapController),"minLength"in J&&n(36,pt=J.minLength),"noResultsMessage"in J&&n(7,st=J.noResultsMessage),"placeholder"in J&&n(8,St=J.placeholder),"proximity"in J&&n(37,ut=J.proximity),"reverseActive"in J&&n(0,kt=J.reverseActive),"reverseButtonTitle"in J&&n(9,mt=J.reverseButtonTitle),"searchValue"in J&&n(1,Et=J.searchValue),"showFullGeometry"in J&&n(38,te=J.showFullGeometry),"showPlaceType"in J&&n(10,Pt=J.showPlaceType),"showResultsWhileTyping"in J&&n(39,ce=J.showResultsWhileTyping),"selectFirst"in J&&n(11,Jt=J.selectFirst),"flyToSelected"in J&&n(40,re=J.flyToSelected),"markerOnSelected"in J&&n(41,Re=J.markerOnSelected),"types"in J&&n(42,Ge=J.types),"excludeTypes"in J&&n(43,Te=J.excludeTypes),"zoom"in J&&n(44,ze=J.zoom),"maxZoom"in J&&n(45,Fe=J.maxZoom),"apiUrl"in J&&n(46,Xe=J.apiUrl),"fetchParameters"in J&&n(47,Dn=J.fetchParameters),"iconsBaseUrl"in J&&n(12,Sn=J.iconsBaseUrl),"adjustUrlQuery"in J&&n(48,mn=J.adjustUrlQuery),"$$scope"in J&&n(58,a=J.$$scope)},e.$$.update=()=>{if(e.$$.dirty[0]&134225920&&setTimeout(()=>{n(16,vs=$e),S&&!$e&&n(1,Et="")}),e.$$.dirty[0]&16386|e.$$.dirty[1]&32&&Et.lengthn(18,cr=J)),e.$$.dirty[1]&50356241&&(Q&&Ee&&Ee.id!==Gs&&G&&(!Ee.bbox||Ee.bbox[0]===Ee.bbox[2]&&Ee.bbox[1]===Ee.bbox[3]?Q.flyTo(Ee.center,Ee.id.startsWith("poi.")||Ee.id.startsWith("address.")?Fe:ze):Q.fitBounds(O1(Ee.bbox),50,Fe),n(14,Ht=void 0),n(54,Nt=void 0),n(15,wn=-1)),n(56,Gs=Ee==null?void 0:Ee.id)),e.$$.dirty[0]&18432&&Jt&&Ht!=null&&Ht.length&&n(15,wn=0),e.$$.dirty[0]&2050&&(Jt||n(15,wn=-1)),e.$$.dirty[0]&16384|e.$$.dirty[1]&8388608&&Nt!==Ht&&n(54,Nt=void 0),e.$$.dirty[0]&81921|e.$$.dirty[1]&8388624&&Q&&Q.setEventHandler(J=>{switch(J.type){case"mapClick":kt&&no(J.coordinates);break;case"markerClick":{const Tt=Ht==null?void 0:Ht.find(_t=>_t.id===J.id);Tt&&fe(Tt)}break;case"markerMouseEnter":Nt&&n(15,wn=vs?(Ht==null?void 0:Ht.findIndex(Tt=>Tt.id===J.id))??-1:-1);break;case"markerMouseLeave":Nt&&n(15,wn=-1);break}}),e.$$.dirty[0]&49152&&n(57,i=Ht==null?void 0:Ht[wn]),e.$$.dirty[1]&67133969&&Q&&i&&G&&re&&Q.flyTo(i.center,i.id.startsWith("poi.")||i.id.startsWith("address.")?Fe:ze),e.$$.dirty[1]&1040&&(Re||Q==null||Q.setMarkers(void 0,void 0)),e.$$.dirty[1]&75498512&&Q&&Re&&!Nt&&(Q.setMarkers(i?[i]:void 0,void 0),Q.setSelectedMarker(i?0:-1)),e.$$.dirty[1]&25165840&&Q&&Q.setMarkers(Nt,Ee),e.$$.dirty[0]&32768|e.$$.dirty[1]&8388624&&Nt&&Q&&Q.setSelectedMarker(wn),e.$$.dirty[0]&2|e.$$.dirty[1]&16&&Q){const J=bs(Et);Q.setReverseMarker(J?[J.decimalLongitude,J.decimalLatitude]:void 0)}e.$$.dirty[1]&67108864&&Dr("select",i),e.$$.dirty[1]&16777216&&Dr("pick",Ee),e.$$.dirty[0]&81920&&Dr("optionsVisibilityChange",vs&&!!Ht),e.$$.dirty[0]&16384&&Dr("featuresListed",Ht),e.$$.dirty[1]&8388608&&Dr("featuresMarked",Nt),e.$$.dirty[0]&1&&Dr("reverseToggle",kt),e.$$.dirty[0]&2&&Dr("queryChange",Et),e.$$.dirty[0]&1|e.$$.dirty[1]&16&&Q&&Q.indicateReverse(kt)},[kt,Et,h,w,E,D,O,st,St,mt,Pt,Jt,Sn,$e,Ht,wn,vs,Bt,cr,si,ja,yl,vl,Qi,fe,u,_,S,M,A,F,G,V,Z,$,Q,pt,ut,te,ce,re,Re,Ge,Te,ze,Fe,Xe,Dn,mn,ri,oi,$n,ie,Je,Nt,Ee,Gs,i,a,r,un,an,Fi,is,sn,ba,ji,lt,j,W,K,nt,Ct]}class DC extends nn{constructor(t){super(),en(this,t,AC,kC,He,{class:2,apiKey:25,bbox:26,clearButtonTitle:3,clearOnBlur:27,collapsed:4,country:28,debounceSearch:29,enableReverse:5,errorMessage:6,filter:30,flyTo:31,fuzzyMatch:32,language:33,limit:34,mapController:35,minLength:36,noResultsMessage:7,placeholder:8,proximity:37,reverseActive:0,reverseButtonTitle:9,searchValue:1,showFullGeometry:38,showPlaceType:10,showResultsWhileTyping:39,selectFirst:11,flyToSelected:40,markerOnSelected:41,types:42,excludeTypes:43,zoom:44,maxZoom:45,apiUrl:46,fetchParameters:47,iconsBaseUrl:12,adjustUrlQuery:48,focus:49,blur:50,setQuery:51,clearList:52,clearMap:53},null,[-1,-1,-1])}get focus(){return this.$$.ctx[49]}get blur(){return this.$$.ctx[50]}get setQuery(){return this.$$.ctx[51]}get clearList(){return this.$$.ctx[52]}get clearMap(){return this.$$.ctx[53]}}function H1(e){let t,n,i;return n=new DC({props:{mapController:e[1],apiKey:e[0]}}),{c(){t=dt("div"),Wt(n.$$.fragment),It(t,"class","svelte-ixhnie")},m(r,a){vt(r,t,a),jt(n,t,null),i=!0},p(r,a){const h={};a&2&&(h.mapController=r[1]),a&1&&(h.apiKey=r[0]),n.$set(h)},i(r){i||(ft(n.$$.fragment,r),i=!0)},o(r){bt(n.$$.fragment,r),i=!1},d(r){r&&yt(t),qt(n)}}}function RC(e){let t,n,i=e[1]&&H1(e);return{c(){i&&i.c(),t=Ao()},m(r,a){i&&i.m(r,a),vt(r,t,a),n=!0},p(r,[a]){r[1]?i?(i.p(r,a),a&2&&ft(i,1)):(i=H1(r),i.c(),ft(i,1),i.m(t.parentNode,t)):i&&(jn(),bt(i,1,1,()=>{i=null}),qn())},i(r){n||(ft(i),n=!0)},o(r){bt(i),n=!1},d(r){r&&yt(t),i&&i.d(r)}}}function NC(e,t,n){let i,{apiKey:r}=t,{map:a}=t;return e.$$set=h=>{"apiKey"in h&&n(0,r=h.apiKey),"map"in h&&n(2,a=h.map)},e.$$.update=()=>{e.$$.dirty&4&&n(1,i=a?XE(a,Ps):null)},[r,i,a]}class OC extends nn{constructor(t){super(),en(this,t,NC,RC,He,{apiKey:0,map:2})}}function X1(e){let t,n;return{c(){t=dt("div"),n=de(e[0]),It(t,"class","svelte-1uuov7f")},m(i,r){vt(i,t,r),ot(t,n)},p(i,r){r&1&&fi(n,i[0])},d(i){i&&yt(t)}}}function zC(e){let t,n=e[0]&&X1(e);return{c(){n&&n.c(),t=Ao()},m(i,r){n&&n.m(i,r),vt(i,t,r)},p(i,[r]){i[0]?n?n.p(i,r):(n=X1(i),n.c(),n.m(t.parentNode,t)):n&&(n.d(1),n=null)},i:Pe,o:Pe,d(i){i&&yt(t),n&&n.d(i)}}}function FC(e,t,n){let{loading:i}=t;return e.$$set=r=>{"loading"in r&&n(0,i=r.loading)},[i]}class vw extends nn{constructor(t){super(),en(this,t,FC,zC,He,{loading:0})}}const BC=e=>({dialog:e&1}),$1=e=>({dialog:e[0]});function VC(e){let t,n,i,r,a;const h=e[4].default,u=sr(h,e,e[3],$1);return{c(){t=dt("dialog"),n=dt("article"),u&&u.c(),t.open=!0},m(_,w){vt(_,t,w),ot(t,n),u&&u.m(n,null),e[6](t),i=!0,r||(a=[Le(window,"click",e[1]),Le(window,"keydown",e[2]),Le(t,"close",e[5])],r=!0)},p(_,[w]){u&&u.p&&(!i||w&9)&&lr(u,h,_,_[3],i?ar(h,_[3],w,BC):ur(_[3]),$1)},i(_){i||(ft(u,_),i=!0)},o(_){bt(u,_),i=!1},d(_){_&&yt(t),u&&u.d(_),e[6](null),r=!1,Ji(a)}}}function UC(e,t,n){let{$$slots:i={},$$scope:r}=t,a;function h(S){a.open&&S.target==a&&a.close()}function u(S){(S.key=="Escape"||S.key=="Enter")&&(S.stopPropagation(),a.close())}function _(S){ii.call(this,e,S)}function w(S){zr[S?"unshift":"push"](()=>{a=S,n(0,a)})}return e.$$set=S=>{"$$scope"in S&&n(3,r=S.$$scope)},[a,h,u,r,i,_,w]}class s0 extends nn{constructor(t){super(),en(this,t,UC,VC,He,{})}}var Eo=63710088e-1,a0={centimeters:Eo*100,centimetres:Eo*100,degrees:Eo/111325,feet:Eo*3.28084,inches:Eo*39.37,kilometers:Eo/1e3,kilometres:Eo/1e3,meters:Eo,metres:Eo,miles:Eo/1609.344,millimeters:Eo*1e3,millimetres:Eo*1e3,nauticalmiles:Eo/1852,radians:1,yards:Eo*1.0936},GC={centimeters:100,centimetres:100,degrees:1/111325,feet:3.28084,inches:39.37,kilometers:1/1e3,kilometres:1/1e3,meters:1,metres:1,miles:1/1609.344,millimeters:1e3,millimetres:1e3,nauticalmiles:1/1852,radians:1/Eo,yards:1.0936133},Ey={acres:247105e-9,centimeters:1e4,centimetres:1e4,feet:10.763910417,hectares:1e-4,inches:1550.003100006,kilometers:1e-6,kilometres:1e-6,meters:1,metres:1,miles:386e-9,millimeters:1e6,millimetres:1e6,yards:1.195990046};function ga(e,t,n){n===void 0&&(n={});var i={type:"Feature"};return(n.id===0||n.id)&&(i.id=n.id),n.bbox&&(i.bbox=n.bbox),i.properties=t||{},i.geometry=e,i}function jC(e,t,n){switch(e){case"Point":return Co(t).geometry;case"LineString":return na(t).geometry;case"Polygon":return l0(t).geometry;case"MultiPoint":return xw(t).geometry;case"MultiLineString":return bw(t).geometry;case"MultiPolygon":return ww(t).geometry;default:throw new Error(e+" is invalid")}}function Co(e,t,n){if(n===void 0&&(n={}),!e)throw new Error("coordinates is required");if(!Array.isArray(e))throw new Error("coordinates must be an Array");if(e.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!cg(e[0])||!cg(e[1]))throw new Error("coordinates must contain numbers");var i={type:"Point",coordinates:e};return ga(i,t,n)}function qC(e,t,n){return n===void 0&&(n={}),Dc(e.map(function(i){return Co(i,t)}),n)}function l0(e,t,n){n===void 0&&(n={});for(var i=0,r=e;i=0))throw new Error("precision must be a positive number");var n=Math.pow(10,t||0);return Math.round(e*n)/n}function u0(e,t){t===void 0&&(t="kilometers");var n=a0[t];if(!n)throw new Error(t+" units is invalid");return e*n}function Bg(e,t){t===void 0&&(t="kilometers");var n=a0[t];if(!n)throw new Error(t+" units is invalid");return e/n}function $C(e,t){return cd(Bg(e,t))}function YC(e){var t=e%360;return t<0&&(t+=360),t}function cd(e){var t=e%(2*Math.PI);return t*180/Math.PI}function ia(e){var t=e%360;return t*Math.PI/180}function KC(e,t,n){if(t===void 0&&(t="kilometers"),n===void 0&&(n="kilometers"),!(e>=0))throw new Error("length must be a positive number");return u0(Bg(e,t),n)}function JC(e,t,n){if(t===void 0&&(t="meters"),n===void 0&&(n="kilometers"),!(e>=0))throw new Error("area must be a positive number");var i=Ey[t];if(!i)throw new Error("invalid original units");var r=Ey[n];if(!r)throw new Error("invalid final units");return e/i*r}function cg(e){return!isNaN(e)&&e!==null&&!Array.isArray(e)}function c0(e){return!!e&&e.constructor===Object}function QC(e){if(!e)throw new Error("bbox is required");if(!Array.isArray(e))throw new Error("bbox must be an Array");if(e.length!==4&&e.length!==6)throw new Error("bbox must be an Array of 4 or 6 numbers");e.forEach(function(t){if(!cg(t))throw new Error("bbox must only contain numbers")})}function tT(e){if(!e)throw new Error("id is required");if(["string","number"].indexOf(typeof e)===-1)throw new Error("id must be a number or a string")}const eT=Object.freeze(Object.defineProperty({__proto__:null,areaFactors:Ey,bearingToAzimuth:YC,convertArea:JC,convertLength:KC,degreesToRadians:ia,earthRadius:Eo,factors:a0,feature:ga,featureCollection:Dc,geometry:jC,geometryCollection:HC,isNumber:cg,isObject:c0,lengthToDegrees:$C,lengthToRadians:Bg,lineString:na,lineStrings:WC,multiLineString:bw,multiPoint:xw,multiPolygon:ww,point:Co,points:qC,polygon:l0,polygons:ZC,radiansToDegrees:cd,radiansToLength:u0,round:XC,unitsFactors:GC,validateBBox:QC,validateId:tT},Symbol.toStringTag,{value:"Module"}));function hd(e){if(!e)throw new Error("coord is required");if(!Array.isArray(e)){if(e.type==="Feature"&&e.geometry!==null&&e.geometry.type==="Point")return e.geometry.coordinates;if(e.type==="Point")return e.coordinates}if(Array.isArray(e)&&e.length>=2&&!Array.isArray(e[0])&&!Array.isArray(e[1]))return e;throw new Error("coord must be GeoJSON Point or an Array of numbers")}function gf(e){if(Array.isArray(e))return e;if(e.type==="Feature"){if(e.geometry!==null)return e.geometry.coordinates}else if(e.coordinates)return e.coordinates;throw new Error("coords must be GeoJSON Feature, Geometry Object or an Array")}function nT(e){return e.type==="Feature"?e.geometry:e}function h0(e,t,n){if(n===void 0&&(n={}),n.final===!0)return iT(e,t);var i=hd(e),r=hd(t),a=ia(i[0]),h=ia(r[0]),u=ia(i[1]),_=ia(r[1]),w=Math.sin(h-a)*Math.cos(_),S=Math.cos(u)*Math.sin(_)-Math.sin(u)*Math.cos(_)*Math.cos(h-a);return cd(Math.atan2(w,S))}function iT(e,t){var n=h0(t,e);return n=(n+180)%360,n}function Gh(e,t,n){n===void 0&&(n={});var i=hd(e),r=hd(t),a=ia(r[1]-i[1]),h=ia(r[0]-i[0]),u=ia(i[1]),_=ia(r[1]),w=Math.pow(Math.sin(a/2),2)+Math.pow(Math.sin(h/2),2)*Math.cos(u)*Math.cos(_);return u0(2*Math.atan2(Math.sqrt(w),Math.sqrt(1-w)),n.units)}function Cy(e,t,n,i){i===void 0&&(i={});var r=hd(e),a=ia(r[0]),h=ia(r[1]),u=ia(n),_=Bg(t,i.units),w=Math.asin(Math.sin(h)*Math.cos(_)+Math.cos(h)*Math.sin(_)*Math.cos(u)),S=a+Math.atan2(Math.sin(u)*Math.sin(_)*Math.cos(h),Math.cos(_)-Math.sin(h)*Math.sin(w)),E=cd(S),M=cd(w);return Co([E,M],i.properties)}function wd(e,t,n){if(e!==null)for(var i,r,a,h,u,_,w,S=0,E=0,M,A=e.type,D=A==="FeatureCollection",O=A==="Feature",F=D?e.features.length:1,G=0;G_||D>w||O>S){u=E,_=i,w=D,S=O,a=0;return}var F=na([u,E],n.properties);if(t(F,i,r,O,a)===!1)return!1;a++,u=E})===!1)return!1}}})}function cT(e,t,n){var i=n,r=!1;return Iw(e,function(a,h,u,_,w){r===!1&&n===void 0?i=a:i=t(i,a,h,u,_,w),r=!0}),i}function Ew(e,t){if(!e)throw new Error("geojson is required");Sf(e,function(n,i,r){if(n.geometry!==null){var a=n.geometry.type,h=n.geometry.coordinates;switch(a){case"LineString":if(t(n,i,r,0,0)===!1)return!1;break;case"Polygon":for(var u=0;ur?n:r,w=i>a?i:a;return[h,u,_,w]}var p0={exports:{}},Cw={exports:{}};(function(e,t){(function(n,i){e.exports=i()})(px,function(){function n(V,Z,$,Q,pt){(function st(St,ut,kt,mt,Et){for(;mt>kt;){if(mt-kt>600){var te=mt-kt+1,Pt=ut-kt+1,ce=Math.log(te),Jt=.5*Math.exp(2*ce/3),re=.5*Math.sqrt(ce*Jt*(te-Jt)/te)*(Pt-te/2<0?-1:1),Re=Math.max(kt,Math.floor(ut-Pt*Jt/te+re)),Ge=Math.min(mt,Math.floor(ut+(te-Pt)*Jt/te+re));st(St,ut,Re,Ge,Et)}var Te=St[ut],ze=kt,Fe=mt;for(i(St,kt,ut),Et(St[mt],Te)>0&&i(St,kt,mt);ze0;)Fe--}Et(St[kt],Te)===0?i(St,kt,Fe):i(St,++Fe,mt),Fe<=ut&&(kt=Fe+1),ut<=Fe&&(mt=Fe-1)}})(V,Z,$||0,Q||V.length-1,pt||r)}function i(V,Z,$){var Q=V[Z];V[Z]=V[$],V[$]=Q}function r(V,Z){return VZ?1:0}var a=function(V){V===void 0&&(V=9),this._maxEntries=Math.max(4,V),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function h(V,Z,$){if(!$)return Z.indexOf(V);for(var Q=0;Q=V.minX&&Z.maxY>=V.minY}function F(V){return{children:V,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function G(V,Z,$,Q,pt){for(var st=[Z,$];st.length;)if(!(($=st.pop())-(Z=st.pop())<=Q)){var St=Z+Math.ceil(($-Z)/Q/2)*Q;n(V,St,Z,$,pt),st.push(Z,St,St,$)}}return a.prototype.all=function(){return this._all(this.data,[])},a.prototype.search=function(V){var Z=this.data,$=[];if(!O(V,Z))return $;for(var Q=this.toBBox,pt=[];Z;){for(var st=0;st=0&&pt[Z].children.length>this._maxEntries;)this._split(pt,Z),Z--;this._adjustParentBBoxes(Q,pt,Z)},a.prototype._split=function(V,Z){var $=V[Z],Q=$.children.length,pt=this._minEntries;this._chooseSplitAxis($,pt,Q);var st=this._chooseSplitIndex($,pt,Q),St=F($.children.splice(st,$.children.length-st));St.height=$.height,St.leaf=$.leaf,u($,this.toBBox),u(St,this.toBBox),Z?V[Z-1].children.push(St):this._splitRoot($,St)},a.prototype._splitRoot=function(V,Z){this.data=F([V,Z]),this.data.height=V.height+1,this.data.leaf=!1,u(this.data,this.toBBox)},a.prototype._chooseSplitIndex=function(V,Z,$){for(var Q,pt,st,St,ut,kt,mt,Et=1/0,te=1/0,Pt=Z;Pt<=$-Z;Pt++){var ce=_(V,0,Pt,this.toBBox),Jt=_(V,Pt,$,this.toBBox),re=(pt=ce,st=Jt,St=void 0,ut=void 0,kt=void 0,mt=void 0,St=Math.max(pt.minX,st.minX),ut=Math.max(pt.minY,st.minY),kt=Math.min(pt.maxX,st.maxX),mt=Math.min(pt.maxY,st.maxY),Math.max(0,kt-St)*Math.max(0,mt-ut)),Re=M(ce)+M(Jt);re=Z;Et--){var te=V.children[Et];w(St,V.leaf?pt(te):te),ut+=A(St)}return ut},a.prototype._adjustParentBBoxes=function(V,Z,$){for(var Q=$;Q>=0;Q--)w(Z[Q],V)},a.prototype._condense=function(V){for(var Z=V.length-1,$=void 0;Z>=0;Z--)V[Z].children.length===0?Z>0?($=V[Z-1].children).splice($.indexOf(V[Z]),1):this.clear():u(V[Z],this.toBBox)},a})})(Cw);var yT=Cw.exports;const vT=mx(eT),Tw=mx(dT);var d0={};Object.defineProperty(d0,"__esModule",{value:!0});var bT=Tw;function Ty(e){var t=[1/0,1/0,-1/0,-1/0];return bT.coordEach(e,function(n){t[0]>n[0]&&(t[0]=n[0]),t[1]>n[1]&&(t[1]=n[1]),t[2] line1 must only contain 2 coordinates");if(i.length!==2)throw new Error(" line2 must only contain 2 coordinates");var r=n[0][0],a=n[0][1],h=n[1][0],u=n[1][1],_=i[0][0],w=i[0][1],S=i[1][0],E=i[1][1],M=(E-w)*(h-r)-(S-_)*(u-a),A=(S-_)*(a-w)-(E-w)*(r-_),D=(h-r)*(a-w)-(u-a)*(r-_);if(M===0)return null;var O=A/M,F=D/M;if(O>=0&&O<=1&&F>=0&&F<=1){var G=r+O*(h-r),V=a+O*(u-a);return Co([G,V])}return null}function ET(e,t,n){n===void 0&&(n={});var i=Co([1/0,1/0],{dist:1/0}),r=0;return Sf(e,function(a){for(var h=gf(a),u=0;u0&&(F=O.features[0],F.properties.dist=Gh(t,F,n),F.properties.location=r+Gh(_,F,n)),_.properties.dist{i.delete(w),i.size===0&&n&&(n(),n=null)}}return{set:r,update:a,subscribe:h}}const Dw=Un(kw()),Rw=Un(0),MT=100;class PT{constructor(t){Ir(this,"map");Ir(this,"active");Ir(this,"eventListenersSuccess");Ir(this,"eventListenersUpdated");Ir(this,"eventListenersFailure");Ir(this,"points");Ir(this,"cursor");Ir(this,"hover");Ir(this,"dragFrom");Ir(this,"previousStates");Ir(this,"onMouseMove",t=>{if(this.active&&!this.dragFrom)this.recalculateHovering(t);else if(this.active&&this.dragFrom){if(this.hover=="polygon"){let n=this.dragFrom[0]-t.lngLat.lng,i=this.dragFrom[1]-t.lngLat.lat;for(let r of this.points)r[0]-=n,r[1]-=i}else this.points[this.hover]=t.lngLat.toArray();this.dragFrom=t.lngLat.toArray(),this.redraw()}});Ir(this,"onClick",t=>{if(this.beforeUpdate(),this.active&&this.cursor){let n=[];if(Q1(this.points).forEach((i,r)=>{n.push([r+1,ET(i,this.cursor).properties.dist])}),n.sort((i,r)=>i[1]-r[1]),n.length>0){let i=n[0][0];this.points.splice(i,0,this.cursor.geometry.coordinates),this.hover=i}else this.points.push(this.cursor.geometry.coordinates),this.hover=this.points.length-1;this.redraw(),this.pointsUpdated()}else this.active&&typeof this.hover=="number"&&(this.points.splice(this.hover,1),this.hover=null,this.redraw(),this.pointsUpdated(),this.recalculateHovering(t))});Ir(this,"onDoubleClick",t=>{this.active&&(t.preventDefault(),this.cursor=ny(t.lngLat.toArray()),this.onClick(t),this.finish())});Ir(this,"onMouseDown",t=>{this.active&&!this.dragFrom&&this.hover!=null&&(t.preventDefault(),this.cursor=null,this.dragFrom=t.lngLat.toArray(),this.beforeUpdate(),this.redraw())});Ir(this,"onMouseUp",()=>{this.active&&this.dragFrom&&(this.dragFrom=null,this.redraw(),this.pointsUpdated())});Ir(this,"onKeypress",t=>{this.active&&(t.key=="Enter"?(t.stopPropagation(),this.finish()):t.key=="z"&&t.ctrlKey&&this.undo())});Ir(this,"onKeyDown",t=>{this.active&&t.key=="Escape"&&(t.stopPropagation(),this.cancel())});this.map=t,this.active=!1,this.eventListenersSuccess=[],this.eventListenersUpdated=[],this.eventListenersFailure=[],this.points=[],this.cursor=null,this.hover=null,this.dragFrom=null,this.previousStates=[],this.map.on("mousemove",this.onMouseMove),this.map.on("click",this.onClick),this.map.on("dblclick",this.onDoubleClick),this.map.on("mousedown",this.onMouseDown),this.map.on("mouseup",this.onMouseUp),document.addEventListener("keypress",this.onKeypress),document.addEventListener("keydown",this.onKeyDown)}tearDown(){this.map.off("mousemove",this.onMouseMove),this.map.off("click",this.onClick),this.map.off("dblclick",this.onDoubleClick),this.map.off("mousedown",this.onMouseDown),this.map.off("mouseup",this.onMouseUp),document.removeEventListener("keypress",this.onKeypress),document.removeEventListener("keydown",this.onKeyDown)}finish(){let t=this.polygonFeature();if(t)for(let n of this.eventListenersSuccess)n(t);else for(let n of this.eventListenersFailure)n();this.stop()}cancel(){for(let t of this.eventListenersFailure)t();this.stop()}addEventListenerSuccess(t){this.eventListenersSuccess.push(t)}addEventListenerUpdated(t){this.eventListenersUpdated.push(t)}addEventListenerFailure(t){this.eventListenersFailure.push(t)}clearEventListeners(){this.eventListenersSuccess=[],this.eventListenersUpdated=[],this.eventListenersFailure=[]}startNew(){this.active=!0,this.map.doubleClickZoom.disable()}editExisting(t){this.active=!0,this.map.doubleClickZoom.disable(),this.points=JSON.parse(JSON.stringify(t.geometry.coordinates[0])),this.points.pop(),this.redraw()}stop(){this.map.doubleClickZoom.enable(),this.points=[],this.cursor=null,this.active=!1,this.hover=null,this.dragFrom=null,this.previousStates=[],this.redraw(),this.map.getCanvas().style.cursor="inherit"}undo(){this.dragFrom!=null||this.previousStates.length==0||(this.points=this.previousStates.pop(),this.hover=null,this.redraw())}redraw(){let t=kw();this.points.forEach((r,a)=>{let h=ny(r);h.properties.hover=this.hover==a,h.properties.idx=a,t.features.push(h)}),t.features=t.features.concat(Q1(this.points));let n=this.polygonFeature();n&&(n.properties.hover=this.hover=="polygon",t.features.push(n)),Dw.set(t);let i="crosshair";this.hover!=null&&(i=this.dragFrom?"grabbing":"pointer"),this.map.getCanvas().style.cursor=i,Rw.set(this.previousStates.length)}pointsUpdated(){let t=this.polygonFeature();if(t)for(let n of this.eventListenersUpdated)n(t)}recalculateHovering(t){this.cursor=null,this.hover=null;for(let n of this.map.queryRenderedFeatures(t.point,{layers:["edit-polygon-fill","edit-polygon-vertices"]}))if(n.geometry.type=="Polygon"){this.hover="polygon";break}else if(n.geometry.type=="Point"&&Object.hasOwn(n.properties,"idx")){this.hover=n.properties.idx;break}this.hover==null&&(this.cursor=ny(t.lngLat.toArray())),this.redraw()}polygonFeature(){if(this.points.length<3)return null;let t=this.points.map(Aw),n=[JSON.parse(JSON.stringify(t))];return n[0].push(JSON.parse(JSON.stringify(n[0][0]))),{type:"Feature",geometry:{type:"Polygon",coordinates:n},properties:{}}}beforeUpdate(){this.previousStates.push(JSON.parse(JSON.stringify(this.points))),this.previousStates.length>MT&&this.previousStates.shift()}}function Q1(e){let t=[];for(let n=0;n=3&&t.push({type:"Feature",geometry:{type:"LineString",coordinates:[e[e.length-1],e[0]]},properties:{}}),t}function kT(e){let t,n,i;return{c(){t=de("Undo ("),n=de(e[1]),i=de(")")},m(r,a){vt(r,t,a),vt(r,n,a),vt(r,i,a)},p(r,a){a&2&&fi(n,r[1])},d(r){r&&(yt(t),yt(n),yt(i))}}}function AT(e){let t;return{c(){t=de("Undo")},m(n,i){vt(n,t,i)},p:Pe,d(n){n&&yt(t)}}}function DT(e){let t,n,i,r,a,h,u,_,w,S,E;function M(O,F){return O[1]==0?AT:kT}let A=M(e),D=A(e);return{c(){t=dt("div"),n=dt("button"),n.textContent="Finish",i=Zt(),r=dt("button"),r.textContent="Cancel",a=Zt(),h=dt("button"),D.c(),_=Zt(),w=dt("ul"),w.innerHTML=`
  • Click - the map to add a vertex
  • Click - a vertex to delete it
  • Drag - a vertex or the polygon to move it
  • Press Control+Z - to undo your last change
  • Press Enter - or - double click - to finish
  • Press Escape - to cancel
  • `,h.disabled=u=e[1]==0,ei(t,"display","flex"),ei(t,"justify-content","space-between")},m(O,F){vt(O,t,F),ot(t,n),ot(t,i),ot(t,r),ot(t,a),ot(t,h),D.m(h,null),vt(O,_,F),vt(O,w,F),S||(E=[Le(n,"click",e[2]),Le(r,"click",e[3]),Le(h,"click",e[4])],S=!0)},p(O,[F]){A===(A=M(O))&&D?D.p(O,F):(D.d(1),D=A(O),D&&(D.c(),D.m(h,null))),F&2&&u!==(u=O[1]==0)&&(h.disabled=u)},i:Pe,o:Pe,d(O){O&&(yt(t),yt(_),yt(w)),D.d(),S=!1,Ji(E)}}}function RT(e,t,n){let i;Se(e,Rw,_=>n(1,i=_));let{polygonTool:r}=t;const a=()=>r.finish(),h=()=>r.cancel(),u=()=>r.undo();return e.$$set=_=>{"polygonTool"in _&&n(0,r=_.polygonTool)},[r,i,a,h,u]}class NT extends nn{constructor(t){super(),en(this,t,RT,DT,He,{polygonTool:0})}}let OT=Date.now();function If(e){return`${e}-${OT++}`}const m0=Symbol.for("svelte-maplibre");function Ef(){return XS(m0)}function zT(e){let t=new WeakMap;return n=>{var h;let i=t.get(n.originalEvent);if(i!==void 0)return i;let a=(h=n.target.queryRenderedFeatures(n.point).find(u=>{var _;return(_=e.get(u.layer.id))==null?void 0:_.interactive}))==null?void 0:h.layer.id;return t.set(n.originalEvent,a),a}}function FT(){let e=new Map;return lx(m0,{map:Un(null),source:iy(null),layer:iy(null),popupTarget:iy(null),cluster:Un(),loadedImages:Un(new Set),minzoom:Un(0),maxzoom:Un(24),layerEvent:Un(null),layerInfo:e,eventTopMost:zT(e)})}function tb(e){return{subscribe:e.subscribe}}function g0({key:e,setPopupTarget:t=!1,setCluster:n=!1,setMouseEvent:i=!1}){let r=Ef(),a=Un(null),h=tb(a),u={...r,[e]:tb(a)};if(t&&(u.popupTarget=h),i){let _=Un(null);u.layerEvent=_,r.layerEvent=_}return n&&(u.cluster=Un()),lx(m0,u),{...r,self:a}}function BT(){return g0({key:"source",setCluster:!0})}function VT(e=!0){return g0({key:"layer",setPopupTarget:e,setMouseEvent:e})}function UT(){return g0({key:"popupTarget",setPopupTarget:!0,setMouseEvent:!0})}function GT(e){return"layerType"in e&&e.layerType==="deckgl"}function eb(e){let t;return n=>{if(n)for(let i in n){let r=t==null?void 0:t[i],a=n[i];r!==a&&e(i,a,r)}else if(t)for(let i in t)e(i,void 0,t[i]);t=n}}function jT(e,...t){let n=[e];for(let i of t)if(i)Array.isArray(i)&&i[0]===e?n.push(...i.slice(1)):n.push(i);else continue;if(n.length!==1)return n.length===2?n[1]:n}function qT(e){return e===!0?["has","point_count"]:e===!1?["!",["has","point_count"]]:void 0}function fg(e,t){return["case",["boolean",["feature-state","hover"],!1],t,e]}var pg=ZT;function ZT(e){var t,n,i;if(e){if(Array.isArray(e)){for(t=[],n=e.length,i=0;i{i=null}),qn())},i(r){n||(ft(i),n=!0)},o(r){bt(i),n=!1},d(r){r&&yt(t),i&&i.d(r)}}}function HT(e,t,n){let i,r,a,h,u,_,w,S,E,M,A,D,{$$slots:O={},$$scope:F}=t,{id:G=If("layer")}=t,{source:V=void 0}=t,{sourceLayer:Z=void 0}=t,{beforeId:$=void 0}=t,{beforeLayerType:Q=void 0}=t,{type:pt}=t,{paint:st=void 0}=t,{layout:St=void 0}=t,{filter:ut=void 0}=t,{applyToClusters:kt=void 0}=t,{minzoom:mt=void 0}=t,{maxzoom:Et=void 0}=t,{manageHoverState:te=!1}=t,{hovered:Pt=null}=t,{interactive:ce=!0}=t,{hoverCursor:Jt=void 0}=t,{eventsIfTopMost:re=!1}=t;const Re=zu(),{map:Ge,source:Te,self:ze,minzoom:Fe,maxzoom:Xe,eventTopMost:Dn,layerInfo:Sn}=VT();Se(e,Ge,Ht=>n(31,E=Ht)),Se(e,Te,Ht=>n(32,M=Ht)),Se(e,ze,Ht=>n(0,S=Ht)),Se(e,Fe,Ht=>n(34,D=Ht)),Se(e,Xe,Ht=>n(33,A=Ht)),fs(()=>{S&&E&&(Sn.delete(S),E==null||E.removeLayer(S))});let mn;function ri(Ht){var Bt,wn;if(!ce||!S||!E||re&&Dn(Ht)!==S)return;let Nt=Ht.features??[],Ee=(wn=(Bt=Nt[0])==null?void 0:Bt.properties)==null?void 0:wn.cluster_id,bi={event:Ht,map:E,clusterId:Ee,layer:S,source:u,features:Nt};Re(Ht.type,bi)}function oi(Ht){var Bt,wn;if(!ce||!S||!E||re&&Dn(Ht)!==S)return;Jt&&(E.getCanvas().style.cursor=Jt);let Nt=Ht.features??[];n(6,Pt=Nt[0]??null);let Ee=(wn=(Bt=Nt[0])==null?void 0:Bt.properties)==null?void 0:wn.cluster_id;Re("mouseenter",{event:Ht,map:E,clusterId:Ee,layer:S,source:u,features:Nt})}function $n(Ht){var Bt,wn,cr;if(!ce||!E)return;if(re&&Dn(Ht)!==S){n(6,Pt=null),te&&mn!==void 0&&(E==null||E.setFeatureState({source:u,sourceLayer:Z,id:mn},{hover:!1}),mn=void 0);return}E.getCanvas().style.cursor=Jt;let Nt=Ht.features??[],Ee=(wn=(Bt=Nt[0])==null?void 0:Bt.properties)==null?void 0:wn.cluster_id,bi=(cr=Nt[0])==null?void 0:cr.id;bi!==mn&&(te&&(mn!==void 0&&(E==null||E.setFeatureState({source:u,id:mn,sourceLayer:Z},{hover:!1})),E==null||E.setFeatureState({source:u,id:bi,sourceLayer:Z},{hover:!0})),mn=bi,n(6,Pt=Nt[0]??null)),Re("mousemove",{event:Ht,map:E,clusterId:Ee,layer:S,source:u,features:Nt})}function ie(Ht){if(!(!ce||!S||!E)){if(Jt&&(E.getCanvas().style.cursor=""),n(6,Pt=null),te&&mn!==void 0){const Nt={source:u,id:mn,sourceLayer:Z};E==null||E.setFeatureState(Nt,{hover:!1}),mn=void 0}Re("mouseleave",{map:E,layer:S,source:u})}}let Je=!0;function $e(Ht){E&&(E.off("click",Ht,ri),E.off("dblclick",Ht,ri),E.off("contextmenu",Ht,ri),E.off("mouseenter",Ht,oi),E.off("mousemove",Ht,$n),E.off("mouseleave",Ht,ie))}return fs(()=>{E&&S&&$e(S)}),e.$$set=Ht=>{"id"in Ht&&n(7,G=Ht.id),"source"in Ht&&n(8,V=Ht.source),"sourceLayer"in Ht&&n(9,Z=Ht.sourceLayer),"beforeId"in Ht&&n(10,$=Ht.beforeId),"beforeLayerType"in Ht&&n(11,Q=Ht.beforeLayerType),"type"in Ht&&n(12,pt=Ht.type),"paint"in Ht&&n(13,st=Ht.paint),"layout"in Ht&&n(14,St=Ht.layout),"filter"in Ht&&n(15,ut=Ht.filter),"applyToClusters"in Ht&&n(16,kt=Ht.applyToClusters),"minzoom"in Ht&&n(17,mt=Ht.minzoom),"maxzoom"in Ht&&n(18,Et=Ht.maxzoom),"manageHoverState"in Ht&&n(19,te=Ht.manageHoverState),"hovered"in Ht&&n(6,Pt=Ht.hovered),"interactive"in Ht&&n(20,ce=Ht.interactive),"hoverCursor"in Ht&&n(21,Jt=Ht.hoverCursor),"eventsIfTopMost"in Ht&&n(22,re=Ht.eventsIfTopMost),"$$scope"in Ht&&n(35,F=Ht.$$scope)},e.$$.update=()=>{if(e.$$.dirty[0]&65536&&n(30,i=qT(kt)),e.$$.dirty[0]&1073774592&&n(24,r=jT("all",i,ut)),e.$$.dirty[0]&131072|e.$$.dirty[1]&8&&n(26,a=mt??D),e.$$.dirty[0]&262144|e.$$.dirty[1]&4&&n(25,h=Et??A),e.$$.dirty[0]&256|e.$$.dirty[1]&2&&n(29,u=V||M),e.$$.dirty[0]&654343809|e.$$.dirty[1]&1&&E&&S!==G&&u){S&&($e(S),Sn.delete(S));let Ht=$;if(!$&&Q){let Nt=E.getStyle().layers,Ee=typeof Q=="function"?Q:Bt=>Bt.type===Q,bi=Nt==null?void 0:Nt.find(Ee);bi&&(Ht=bi.id)}Ke(ze,S=G,S),E.addLayer(pg({id:S,type:pt,source:u,"source-layer":Z,filter:r,paint:st,layout:St,minzoom:a,maxzoom:h}),Ht),n(23,Je=!0),E.on("click",S,ri),E.on("dblclick",S,ri),E.on("contextmenu",S,ri),E.on("mouseenter",S,oi),E.on("mousemove",S,$n),E.on("mouseleave",S,ie)}e.$$.dirty[0]&1048577&&S&&Sn.set(S,{interactive:ce}),e.$$.dirty[0]&1|e.$$.dirty[1]&1&&n(28,_=S?eb((Ht,Nt)=>E==null?void 0:E.setPaintProperty(S,Ht,Nt)):void 0),e.$$.dirty[0]&1|e.$$.dirty[1]&1&&n(27,w=S?eb((Ht,Nt)=>E==null?void 0:E.setLayoutProperty(S,Ht,Nt)):void 0),e.$$.dirty[0]&268443648&&(_==null||_(st)),e.$$.dirty[0]&134234112&&(w==null||w(St)),e.$$.dirty[0]&100663297|e.$$.dirty[1]&1&&S&&(E==null||E.setLayerZoomRange(S,a,h)),e.$$.dirty[0]&25165825|e.$$.dirty[1]&1&&S&&(Je?n(23,Je=!1):E==null||E.setFilter(S,r))},[S,Ge,Te,ze,Fe,Xe,Pt,G,V,Z,$,Q,pt,st,St,ut,kt,mt,Et,te,ce,Jt,re,Je,r,h,a,w,_,u,i,E,M,A,D,F,O]}class Vg extends nn{constructor(t){super(),en(this,t,HT,WT,He,{id:7,source:8,sourceLayer:9,beforeId:10,beforeLayerType:11,type:12,paint:13,layout:14,filter:15,applyToClusters:16,minzoom:17,maxzoom:18,manageHoverState:19,hovered:6,interactive:20,hoverCursor:21,eventsIfTopMost:22},null,[-1,-1])}}function XT(e){let t;const n=e[16].default,i=sr(n,e,e[24],null);return{c(){i&&i.c()},m(r,a){i&&i.m(r,a),t=!0},p(r,a){i&&i.p&&(!t||a&16777216)&&lr(i,n,r,r[24],t?ar(n,r[24],a,null):ur(r[24]),null)},i(r){t||(ft(i,r),t=!0)},o(r){bt(i,r),t=!1},d(r){i&&i.d(r)}}}function $T(e){let t,n,i;function r(h){e[17](h)}let a={id:e[1],type:"circle",source:e[2],sourceLayer:e[3],beforeId:e[4],beforeLayerType:e[5],paint:e[6],layout:e[7],filter:e[8],applyToClusters:e[9],minzoom:e[10],maxzoom:e[11],hoverCursor:e[12],manageHoverState:e[13],eventsIfTopMost:e[14],interactive:e[15],$$slots:{default:[XT]},$$scope:{ctx:e}};return e[0]!==void 0&&(a.hovered=e[0]),t=new Vg({props:a}),zr.push(()=>vc(t,"hovered",r)),t.$on("click",e[18]),t.$on("dblclick",e[19]),t.$on("contextmenu",e[20]),t.$on("mouseenter",e[21]),t.$on("mousemove",e[22]),t.$on("mouseleave",e[23]),{c(){Wt(t.$$.fragment)},m(h,u){jt(t,h,u),i=!0},p(h,[u]){const _={};u&2&&(_.id=h[1]),u&4&&(_.source=h[2]),u&8&&(_.sourceLayer=h[3]),u&16&&(_.beforeId=h[4]),u&32&&(_.beforeLayerType=h[5]),u&64&&(_.paint=h[6]),u&128&&(_.layout=h[7]),u&256&&(_.filter=h[8]),u&512&&(_.applyToClusters=h[9]),u&1024&&(_.minzoom=h[10]),u&2048&&(_.maxzoom=h[11]),u&4096&&(_.hoverCursor=h[12]),u&8192&&(_.manageHoverState=h[13]),u&16384&&(_.eventsIfTopMost=h[14]),u&32768&&(_.interactive=h[15]),u&16777216&&(_.$$scope={dirty:u,ctx:h}),!n&&u&1&&(n=!0,_.hovered=h[0],yc(()=>n=!1)),t.$set(_)},i(h){i||(ft(t.$$.fragment,h),i=!0)},o(h){bt(t.$$.fragment,h),i=!1},d(h){qt(t,h)}}}function YT(e,t,n){let{$$slots:i={},$$scope:r}=t,{id:a=If("circle")}=t,{source:h=void 0}=t,{sourceLayer:u=void 0}=t,{beforeId:_=void 0}=t,{beforeLayerType:w=void 0}=t,{paint:S}=t,{layout:E=void 0}=t,{filter:M=void 0}=t,{applyToClusters:A=void 0}=t,{minzoom:D=void 0}=t,{maxzoom:O=void 0}=t,{hoverCursor:F=void 0}=t,{manageHoverState:G=!1}=t,{hovered:V=null}=t,{eventsIfTopMost:Z=!1}=t,{interactive:$=!0}=t;function Q(Et){V=Et,n(0,V)}function pt(Et){ii.call(this,e,Et)}function st(Et){ii.call(this,e,Et)}function St(Et){ii.call(this,e,Et)}function ut(Et){ii.call(this,e,Et)}function kt(Et){ii.call(this,e,Et)}function mt(Et){ii.call(this,e,Et)}return e.$$set=Et=>{"id"in Et&&n(1,a=Et.id),"source"in Et&&n(2,h=Et.source),"sourceLayer"in Et&&n(3,u=Et.sourceLayer),"beforeId"in Et&&n(4,_=Et.beforeId),"beforeLayerType"in Et&&n(5,w=Et.beforeLayerType),"paint"in Et&&n(6,S=Et.paint),"layout"in Et&&n(7,E=Et.layout),"filter"in Et&&n(8,M=Et.filter),"applyToClusters"in Et&&n(9,A=Et.applyToClusters),"minzoom"in Et&&n(10,D=Et.minzoom),"maxzoom"in Et&&n(11,O=Et.maxzoom),"hoverCursor"in Et&&n(12,F=Et.hoverCursor),"manageHoverState"in Et&&n(13,G=Et.manageHoverState),"hovered"in Et&&n(0,V=Et.hovered),"eventsIfTopMost"in Et&&n(14,Z=Et.eventsIfTopMost),"interactive"in Et&&n(15,$=Et.interactive),"$$scope"in Et&&n(24,r=Et.$$scope)},[V,a,h,u,_,w,S,E,M,A,D,O,F,G,Z,$,i,Q,pt,st,St,ut,kt,mt,r]}class Sd extends nn{constructor(t){super(),en(this,t,YT,$T,He,{id:1,source:2,sourceLayer:3,beforeId:4,beforeLayerType:5,paint:6,layout:7,filter:8,applyToClusters:9,minzoom:10,maxzoom:11,hoverCursor:12,manageHoverState:13,hovered:0,eventsIfTopMost:14,interactive:15})}}function KT(e){let t;const n=e[15].default,i=sr(n,e,e[23],null);return{c(){i&&i.c()},m(r,a){i&&i.m(r,a),t=!0},p(r,a){i&&i.p&&(!t||a&8388608)&&lr(i,n,r,r[23],t?ar(n,r[23],a,null):ur(r[23]),null)},i(r){t||(ft(i,r),t=!0)},o(r){bt(i,r),t=!1},d(r){i&&i.d(r)}}}function JT(e){let t,n,i;function r(h){e[16](h)}let a={id:e[1],type:"fill",source:e[2],sourceLayer:e[3],beforeId:e[4],beforeLayerType:e[5],paint:e[6],layout:e[7],filter:e[8],minzoom:e[9],maxzoom:e[10],hoverCursor:e[11],manageHoverState:e[12],eventsIfTopMost:e[13],interactive:e[14],$$slots:{default:[KT]},$$scope:{ctx:e}};return e[0]!==void 0&&(a.hovered=e[0]),t=new Vg({props:a}),zr.push(()=>vc(t,"hovered",r)),t.$on("click",e[17]),t.$on("dblclick",e[18]),t.$on("contextmenu",e[19]),t.$on("mouseenter",e[20]),t.$on("mousemove",e[21]),t.$on("mouseleave",e[22]),{c(){Wt(t.$$.fragment)},m(h,u){jt(t,h,u),i=!0},p(h,[u]){const _={};u&2&&(_.id=h[1]),u&4&&(_.source=h[2]),u&8&&(_.sourceLayer=h[3]),u&16&&(_.beforeId=h[4]),u&32&&(_.beforeLayerType=h[5]),u&64&&(_.paint=h[6]),u&128&&(_.layout=h[7]),u&256&&(_.filter=h[8]),u&512&&(_.minzoom=h[9]),u&1024&&(_.maxzoom=h[10]),u&2048&&(_.hoverCursor=h[11]),u&4096&&(_.manageHoverState=h[12]),u&8192&&(_.eventsIfTopMost=h[13]),u&16384&&(_.interactive=h[14]),u&8388608&&(_.$$scope={dirty:u,ctx:h}),!n&&u&1&&(n=!0,_.hovered=h[0],yc(()=>n=!1)),t.$set(_)},i(h){i||(ft(t.$$.fragment,h),i=!0)},o(h){bt(t.$$.fragment,h),i=!1},d(h){qt(t,h)}}}function QT(e,t,n){let{$$slots:i={},$$scope:r}=t,{id:a=If("fill")}=t,{source:h=void 0}=t,{sourceLayer:u=void 0}=t,{beforeId:_=void 0}=t,{beforeLayerType:w=void 0}=t,{paint:S}=t,{layout:E=void 0}=t,{filter:M=void 0}=t,{minzoom:A=void 0}=t,{maxzoom:D=void 0}=t,{hoverCursor:O=void 0}=t,{manageHoverState:F=!1}=t,{hovered:G=null}=t,{eventsIfTopMost:V=!1}=t,{interactive:Z=!0}=t;function $(mt){G=mt,n(0,G)}function Q(mt){ii.call(this,e,mt)}function pt(mt){ii.call(this,e,mt)}function st(mt){ii.call(this,e,mt)}function St(mt){ii.call(this,e,mt)}function ut(mt){ii.call(this,e,mt)}function kt(mt){ii.call(this,e,mt)}return e.$$set=mt=>{"id"in mt&&n(1,a=mt.id),"source"in mt&&n(2,h=mt.source),"sourceLayer"in mt&&n(3,u=mt.sourceLayer),"beforeId"in mt&&n(4,_=mt.beforeId),"beforeLayerType"in mt&&n(5,w=mt.beforeLayerType),"paint"in mt&&n(6,S=mt.paint),"layout"in mt&&n(7,E=mt.layout),"filter"in mt&&n(8,M=mt.filter),"minzoom"in mt&&n(9,A=mt.minzoom),"maxzoom"in mt&&n(10,D=mt.maxzoom),"hoverCursor"in mt&&n(11,O=mt.hoverCursor),"manageHoverState"in mt&&n(12,F=mt.manageHoverState),"hovered"in mt&&n(0,G=mt.hovered),"eventsIfTopMost"in mt&&n(13,V=mt.eventsIfTopMost),"interactive"in mt&&n(14,Z=mt.interactive),"$$scope"in mt&&n(23,r=mt.$$scope)},[G,a,h,u,_,w,S,E,M,A,D,O,F,V,Z,i,$,Q,pt,st,St,ut,kt,r]}class Vu extends nn{constructor(t){super(),en(this,t,QT,JT,He,{id:1,source:2,sourceLayer:3,beforeId:4,beforeLayerType:5,paint:6,layout:7,filter:8,minzoom:9,maxzoom:10,hoverCursor:11,manageHoverState:12,hovered:0,eventsIfTopMost:13,interactive:14})}}function tL(e,t,n){let i;const{map:r}=Ef();Se(e,r,_=>n(4,i=_));let{position:a="top-left"}=t,{container:h=void 0}=t,u=null;return fs(()=>{i!=null&&i.loaded()&&u&&i.removeControl(u)}),e.$$set=_=>{"position"in _&&n(1,a=_.position),"container"in _&&n(2,h=_.container)},e.$$.update=()=>{if(e.$$.dirty&30&&i&&!u){let _;typeof h=="string"?_=document.querySelector(h)??void 0:_=h,n(3,u=new Ps.FullscreenControl({container:_})),i.addControl(u,a)}},[r,a,h,u,i]}class eL extends nn{constructor(t){super(),en(this,t,tL,null,He,{position:1,container:2})}}function nL(e,t,n,i,r){let a=!1;e.getSource(t)&&(a=!0,e.removeSource(t));const h=()=>{i(t)&&(e.addSource(t,n),r())};if(a){const u=()=>{t&&(e.getSource(t)?setTimeout(u,1):h())};u()}else h()}function iL(e,t,n){$S().then(()=>{let i=Ma(e);if(!i)return;i.getSource(t)===n&&i.removeSource(t)})}function rb(e){let t=e[0],n,i,r=ob(e);return{c(){r.c(),n=Ao()},m(a,h){r.m(a,h),vt(a,n,h),i=!0},p(a,h){h&1&&He(t,t=a[0])?(jn(),bt(r,1,1,Pe),qn(),r=ob(a),r.c(),ft(r,1),r.m(n.parentNode,n)):r.p(a,h)},i(a){i||(ft(r),i=!0)},o(a){bt(r),i=!1},d(a){a&&yt(n),r.d(a)}}}function ob(e){let t;const n=e[15].default,i=sr(n,e,e[14],null);return{c(){i&&i.c()},m(r,a){i&&i.m(r,a),t=!0},p(r,a){i&&i.p&&(!t||a&16384)&&lr(i,n,r,r[14],t?ar(n,r[14],a,null):ur(r[14]),null)},i(r){t||(ft(i,r),t=!0)},o(r){bt(i,r),t=!1},d(r){i&&i.d(r)}}}function rL(e){let t,n,i=e[0]&&rb(e);return{c(){i&&i.c(),t=Ao()},m(r,a){i&&i.m(r,a),vt(r,t,a),n=!0},p(r,[a]){r[0]?i?(i.p(r,a),a&1&&ft(i,1)):(i=rb(r),i.c(),ft(i,1),i.m(t.parentNode,t)):i&&(jn(),bt(i,1,1,()=>{i=null}),qn())},i(r){n||(ft(i),n=!0)},o(r){bt(i),n=!1},d(r){r&&yt(t),i&&i.d(r)}}}function oL(e,t,n){let i,r,a,{$$slots:h={},$$scope:u}=t,{id:_=If("geojson")}=t,{data:w}=t,{generateId:S=!1}=t,{promoteId:E=void 0}=t,{filter:M=void 0}=t,{lineMetrics:A=void 0}=t,{cluster:D=void 0}=t;const{map:O,cluster:F,self:G}=BT();Se(e,O,$=>n(13,r=$)),Se(e,F,$=>n(16,a=$)),Se(e,G,$=>n(0,i=$));let V,Z=!0;return fs(()=>{i&&V&&r&&(iL(O,i,V),Ke(G,i=null,i),n(11,V=void 0))}),e.$$set=$=>{"id"in $&&n(4,_=$.id),"data"in $&&n(5,w=$.data),"generateId"in $&&n(6,S=$.generateId),"promoteId"in $&&n(7,E=$.promoteId),"filter"in $&&n(8,M=$.filter),"lineMetrics"in $&&n(9,A=$.lineMetrics),"cluster"in $&&n(10,D=$.cluster),"$$scope"in $&&n(14,u=$.$$scope)},e.$$.update=()=>{e.$$.dirty&1024&&Ke(F,a=D,a),e.$$.dirty&12273&&r&&i!==_&&(Ke(G,i=_,i),nL(r,i,pg({type:"geojson",data:w,filter:M,lineMetrics:A,generateId:S,promoteId:E,cluster:!!D,clusterMinPoints:D==null?void 0:D.minPoints,clusterMaxZoom:D==null?void 0:D.maxZoom,clusterRadius:D==null?void 0:D.radius,clusterProperties:D==null?void 0:D.properties}),$=>r&&$===i,()=>{i&&(n(11,V=r==null?void 0:r.getSource(i)),n(12,Z=!0))})),e.$$.dirty&8208&&(r==null||r.on("style.load",()=>{n(11,V=r==null?void 0:r.getSource(_))})),e.$$.dirty&6176&&V&&(Z?n(12,Z=!1):V.setData(w)),e.$$.dirty&3072&&(V==null||V.setClusterOptions(pg({cluster:!!D,clusterMaxZoom:D==null?void 0:D.maxZoom,clusterRadius:D==null?void 0:D.radius})))},[i,O,F,G,_,w,S,E,M,A,D,V,Z,r,u,h]}class $o extends nn{constructor(t){super(),en(this,t,oL,rL,He,{id:4,data:5,generateId:6,promoteId:7,filter:8,lineMetrics:9,cluster:10})}}function sL(e,t,n){let i;const{map:r}=Ef();Se(e,r,M=>n(8,i=M));let{position:a="top-left"}=t,{positionOptions:h=void 0}=t,{fitBoundsOptions:u=void 0}=t,{trackUserLocation:_=!1}=t,{showAccuracyCircle:w=!0}=t,{showUserLocation:S=!0}=t,E=null;return fs(()=>{i!=null&&i.loaded()&&E&&i.removeControl(E)}),e.$$set=M=>{"position"in M&&n(1,a=M.position),"positionOptions"in M&&n(2,h=M.positionOptions),"fitBoundsOptions"in M&&n(3,u=M.fitBoundsOptions),"trackUserLocation"in M&&n(4,_=M.trackUserLocation),"showAccuracyCircle"in M&&n(5,w=M.showAccuracyCircle),"showUserLocation"in M&&n(6,S=M.showUserLocation)},e.$$.update=()=>{e.$$.dirty&510&&i&&!E&&(n(7,E=new Ps.GeolocateControl({positionOptions:h,fitBoundsOptions:u,trackUserLocation:_,showAccuracyCircle:w,showUserLocation:S})),i.addControl(E,a))},[r,a,h,u,_,w,S,E,i]}class aL extends nn{constructor(t){super(),en(this,t,sL,null,He,{position:1,positionOptions:2,fitBoundsOptions:3,trackUserLocation:4,showAccuracyCircle:5,showUserLocation:6})}}function lL(e){let t;const n=e[15].default,i=sr(n,e,e[23],null);return{c(){i&&i.c()},m(r,a){i&&i.m(r,a),t=!0},p(r,a){i&&i.p&&(!t||a&8388608)&&lr(i,n,r,r[23],t?ar(n,r[23],a,null):ur(r[23]),null)},i(r){t||(ft(i,r),t=!0)},o(r){bt(i,r),t=!1},d(r){i&&i.d(r)}}}function uL(e){let t,n,i;function r(h){e[16](h)}let a={id:e[1],type:"line",source:e[2],sourceLayer:e[3],beforeId:e[4],beforeLayerType:e[5],paint:e[6],layout:e[7],filter:e[8],minzoom:e[9],maxzoom:e[10],hoverCursor:e[11],manageHoverState:e[12],eventsIfTopMost:e[13],interactive:e[14],$$slots:{default:[lL]},$$scope:{ctx:e}};return e[0]!==void 0&&(a.hovered=e[0]),t=new Vg({props:a}),zr.push(()=>vc(t,"hovered",r)),t.$on("click",e[17]),t.$on("dblclick",e[18]),t.$on("contextmenu",e[19]),t.$on("mouseenter",e[20]),t.$on("mousemove",e[21]),t.$on("mouseleave",e[22]),{c(){Wt(t.$$.fragment)},m(h,u){jt(t,h,u),i=!0},p(h,[u]){const _={};u&2&&(_.id=h[1]),u&4&&(_.source=h[2]),u&8&&(_.sourceLayer=h[3]),u&16&&(_.beforeId=h[4]),u&32&&(_.beforeLayerType=h[5]),u&64&&(_.paint=h[6]),u&128&&(_.layout=h[7]),u&256&&(_.filter=h[8]),u&512&&(_.minzoom=h[9]),u&1024&&(_.maxzoom=h[10]),u&2048&&(_.hoverCursor=h[11]),u&4096&&(_.manageHoverState=h[12]),u&8192&&(_.eventsIfTopMost=h[13]),u&16384&&(_.interactive=h[14]),u&8388608&&(_.$$scope={dirty:u,ctx:h}),!n&&u&1&&(n=!0,_.hovered=h[0],yc(()=>n=!1)),t.$set(_)},i(h){i||(ft(t.$$.fragment,h),i=!0)},o(h){bt(t.$$.fragment,h),i=!1},d(h){qt(t,h)}}}function cL(e,t,n){let{$$slots:i={},$$scope:r}=t,{id:a=If("line")}=t,{source:h=void 0}=t,{sourceLayer:u=void 0}=t,{beforeId:_=void 0}=t,{beforeLayerType:w=void 0}=t,{paint:S}=t,{layout:E=void 0}=t,{filter:M=void 0}=t,{minzoom:A=void 0}=t,{maxzoom:D=void 0}=t,{hoverCursor:O=void 0}=t,{manageHoverState:F=!1}=t,{hovered:G=null}=t,{eventsIfTopMost:V=!1}=t,{interactive:Z=!0}=t;function $(mt){G=mt,n(0,G)}function Q(mt){ii.call(this,e,mt)}function pt(mt){ii.call(this,e,mt)}function st(mt){ii.call(this,e,mt)}function St(mt){ii.call(this,e,mt)}function ut(mt){ii.call(this,e,mt)}function kt(mt){ii.call(this,e,mt)}return e.$$set=mt=>{"id"in mt&&n(1,a=mt.id),"source"in mt&&n(2,h=mt.source),"sourceLayer"in mt&&n(3,u=mt.sourceLayer),"beforeId"in mt&&n(4,_=mt.beforeId),"beforeLayerType"in mt&&n(5,w=mt.beforeLayerType),"paint"in mt&&n(6,S=mt.paint),"layout"in mt&&n(7,E=mt.layout),"filter"in mt&&n(8,M=mt.filter),"minzoom"in mt&&n(9,A=mt.minzoom),"maxzoom"in mt&&n(10,D=mt.maxzoom),"hoverCursor"in mt&&n(11,O=mt.hoverCursor),"manageHoverState"in mt&&n(12,F=mt.manageHoverState),"hovered"in mt&&n(0,G=mt.hovered),"eventsIfTopMost"in mt&&n(13,V=mt.eventsIfTopMost),"interactive"in mt&&n(14,Z=mt.interactive),"$$scope"in mt&&n(23,r=mt.$$scope)},[G,a,h,u,_,w,S,E,M,A,D,O,F,V,Z,i,$,Q,pt,st,St,ut,kt,r]}class Uu extends nn{constructor(t){super(),en(this,t,cL,uL,He,{id:1,source:2,sourceLayer:3,beforeId:4,beforeLayerType:5,paint:6,layout:7,filter:8,minzoom:9,maxzoom:10,hoverCursor:11,manageHoverState:12,hovered:0,eventsIfTopMost:13,interactive:14})}}function hL(e){let t=e.getCenter(),n=Math.round(e.getZoom()*100)/100,i=Math.ceil((n*Math.LN2+Math.log(512/360/.5))/Math.LN10),r=Math.pow(10,i),a=Math.round(t.lat*r)/r,h=Math.round(t.lng*r)/r,u=`${n}/${a}/${h}`,_=e.getBearing(),w=e.getPitch();return(_||w)&&(u+=`/${Math.round(_*10)/10}`),w&&(u+=`/${Math.round(w)}`),`#${u}`}function fL(e){return e.replace("#","").split("/").map(parseFloat)}var Fm=_0;function _0(e,t){return e===t||e!==e&&t!==t?!0:typeof e!=typeof t||{}.toString.call(e)!={}.toString.call(t)||e!==Object(e)||!e?!1:Array.isArray(e)?sb(e,t):{}.toString.call(e)=="[object Set]"?sb(Array.from(e),Array.from(t)):{}.toString.call(e)=="[object Object]"?dL(e,t):pL(e,t)}function pL(e,t){return e.toString()===t.toString()}function sb(e,t){var n=e.length;if(n!=t.length)return!1;for(var i=0;in(6,i=S));let{position:a="top-left"}=t,{showCompass:h=!0}=t,{showZoom:u=!0}=t,{visualizePitch:_=!1}=t,w=null;return fs(()=>{i!=null&&i.loaded()&&w&&i.removeControl(w)}),e.$$set=S=>{"position"in S&&n(1,a=S.position),"showCompass"in S&&n(2,h=S.showCompass),"showZoom"in S&&n(3,u=S.showZoom),"visualizePitch"in S&&n(4,_=S.visualizePitch)},e.$$.update=()=>{e.$$.dirty&126&&i&&!w&&(n(5,w=new Ps.NavigationControl({showCompass:h,showZoom:u,visualizePitch:_})),i.addControl(w,a))},[r,a,h,u,_,w,i]}class gL extends nn{constructor(t){super(),en(this,t,mL,null,He,{position:1,showCompass:2,showZoom:3,visualizePitch:4})}}function _L(e,t,n){let i;const{map:r}=Ef();Se(e,r,w=>n(5,i=w));let{position:a="bottom-left"}=t,{maxWidth:h=void 0}=t,{unit:u="metric"}=t,_=null;return fs(()=>{i!=null&&i.loaded()&&_&&i.removeControl(_)}),e.$$set=w=>{"position"in w&&n(1,a=w.position),"maxWidth"in w&&n(2,h=w.maxWidth),"unit"in w&&n(3,u=w.unit)},e.$$.update=()=>{e.$$.dirty&62&&i&&!_&&(n(4,_=new Ps.ScaleControl({maxWidth:h,unit:u})),i.addControl(_,a))},[r,a,h,u,_,i]}class yL extends nn{constructor(t){super(),en(this,t,_L,null,He,{position:1,maxWidth:2,unit:3})}}const{window:vL}=Vy,bL=e=>({map:e[0]&8,loadedImages:e[0]&16,allImagesLoaded:e[0]&32}),ab=e=>({map:e[3],loadedImages:e[4],allImagesLoaded:e[5]});function lb(e){let t,n,i=e[2]&&ub(e);const r=e[38].default,a=sr(r,e,e[37],ab);return{c(){i&&i.c(),t=Zt(),a&&a.c()},m(h,u){i&&i.m(h,u),vt(h,t,u),a&&a.m(h,u),n=!0},p(h,u){h[2]?i?(i.p(h,u),u[0]&4&&ft(i,1)):(i=ub(h),i.c(),ft(i,1),i.m(t.parentNode,t)):i&&(jn(),bt(i,1,1,()=>{i=null}),qn()),a&&a.p&&(!n||u[0]&56|u[1]&64)&&lr(a,r,h,h[37],n?ar(r,h[37],u,bL):ur(h[37]),ab)},i(h){n||(ft(i),ft(a,h),n=!0)},o(h){bt(i),bt(a,h),n=!1},d(h){h&&yt(t),i&&i.d(h),a&&a.d(h)}}}function ub(e){let t,n,i,r,a,h,u,_;return t=new gL({props:{position:e[6]}}),i=new aL({props:{position:e[6],fitBoundsOptions:{maxZoom:12}}}),a=new eL({props:{position:e[6]}}),u=new yL({props:{position:e[6]}}),{c(){Wt(t.$$.fragment),n=Zt(),Wt(i.$$.fragment),r=Zt(),Wt(a.$$.fragment),h=Zt(),Wt(u.$$.fragment)},m(w,S){jt(t,w,S),vt(w,n,S),jt(i,w,S),vt(w,r,S),jt(a,w,S),vt(w,h,S),jt(u,w,S),_=!0},p(w,S){const E={};S[0]&64&&(E.position=w[6]),t.$set(E);const M={};S[0]&64&&(M.position=w[6]),i.$set(M);const A={};S[0]&64&&(A.position=w[6]),a.$set(A);const D={};S[0]&64&&(D.position=w[6]),u.$set(D)},i(w){_||(ft(t.$$.fragment,w),ft(i.$$.fragment,w),ft(a.$$.fragment,w),ft(u.$$.fragment,w),_=!0)},o(w){bt(t.$$.fragment,w),bt(i.$$.fragment,w),bt(a.$$.fragment,w),bt(u.$$.fragment,w),_=!1},d(w){w&&(yt(n),yt(r),yt(h)),qt(t,w),qt(i,w),qt(a,w),qt(u,w)}}}function xL(e){let t,n,i,r,a,h=e[3]&&e[0]&&lb(e);return{c(){t=dt("div"),h&&h.c(),It(t,"class",n=$m(e[1])+" svelte-p00lfq"),It(t,"data-testid","map-container"),al(t,"expand-map",!e[1])},m(u,_){vt(u,t,_),h&&h.m(t,null),i=!0,r||(a=[Le(vL,"hashchange",e[10]),sy(e[9].call(null,t))],r=!0)},p(u,_){u[3]&&u[0]?h?(h.p(u,_),_[0]&9&&ft(h,1)):(h=lb(u),h.c(),ft(h,1),h.m(t,null)):h&&(jn(),bt(h,1,1,()=>{h=null}),qn()),(!i||_[0]&2&&n!==(n=$m(u[1])+" svelte-p00lfq"))&&It(t,"class",n),(!i||_[0]&2)&&al(t,"expand-map",!u[1])},i(u){i||(ft(h),i=!0)},o(u){bt(h),i=!1},d(u){u&&yt(t),h&&h.d(),r=!1,Ji(a)}}}function wL(e,t,n){let i,r,a,h,{$$slots:u={},$$scope:_}=t,{map:w=null}=t,{class:S=void 0}=t,{style:E}=t,{diffStyleUpdates:M=!1}=t,{center:A=void 0}=t,{zoom:D=void 0}=t,{pitch:O=0}=t,{bearing:F=0}=t,{bounds:G=void 0}=t,{hash:V=!1}=t,{loaded:Z=!1}=t,{minZoom:$=0}=t,{maxZoom:Q=22}=t,{antialias:pt=void 0}=t,{zoomOnDoubleClick:st=!0}=t,{locale:St=void 0}=t,{interactive:ut=!0}=t,{attributionControl:kt=!0}=t,{cooperativeGestures:mt=!1}=t,{preserveDrawingBuffer:Et=!1}=t,{maxBounds:te=void 0}=t,{images:Pt=[]}=t,{standardControls:ce=!1}=t,{filterLayers:Jt=void 0}=t,{transformRequest:re=void 0}=t;const Re=zu(),{map:Ge,loadedImages:Te}=FT();Se(e,Ge,ie=>n(3,a=ie)),Se(e,Te,ie=>n(4,h=ie));let ze=new Set;async function Fe(ie,Je=!1){if(a&&!(!a.loaded()&&!Je))if("url"in ie){ze.add(ie.id);try{let $e=await a.loadImage(ie.url);a==null||a.addImage(ie.id,$e.data,ie.options),h.add(ie.id),Te.set(h)}catch($e){Re("error",$e)}finally{ze.delete(ie.id)}}else a.addImage(ie.id,ie.data,ie.options),h.add(ie.id),Te.set(h)}let Xe,Dn,Sn,mn;function ri(ie){return $n(),Ke(Ge,a=new Ps.Map(pg({container:ie,style:E,locale:St,center:A,zoom:D,pitch:O,bearing:F,minZoom:$,maxZoom:Q,antialias:pt,interactive:ut,preserveDrawingBuffer:Et,maxBounds:te,bounds:G,attributionControl:kt,transformRequest:re,cooperativeGestures:mt})),a),a.on("load",Je=>{Je.target.getContainer().setAttribute("data-testid","map"),Je.target.getCanvas().setAttribute("data-testid","map-canvas"),n(0,Z=!0),Re("load",a)}),a.on("error",Je=>Re("error",{...Je,map:a})),a.on("movestart",Je=>Re("movestart",{...Je,map:a})),a.on("moveend",Je=>{if(n(11,A=Je.target.getCenter()),n(12,D=Je.target.getZoom()),n(13,G=Je.target.getBounds()),Re("moveend",{...Je,map:a}),V){let $e=window.location.href.replace(/(#.+)?$/,hL(a));window.history.replaceState(window.history.state,"",$e)}}),a.on("zoomstart",Je=>Re("zoomstart",{...Je,map:a})),a.on("zoom",Je=>{n(12,D=Je.target.getZoom()),Re("zoom",{...Je,map:a})}),a.on("zoomend",Je=>{n(12,D=Je.target.getZoom()),Re("zoomend",{...Je,map:a})}),a.on("style.load",()=>{if(a){const Je=a.getStyle();if(n(34,Xe=Je.layers.map($e=>$e.id)),n(35,Dn=Object.keys(Je.sources)),mn)for(const[$e,Ht]of Object.entries(mn))a.addSource($e,Ht);if(Sn)for(const $e of Sn)a.addLayer($e);for(const $e of Pt)Fe($e,!0)}}),a.on("styledata",Je=>{if(a&&Jt){const $e=a.getStyle().layers;if($e)for(let Ht of $e)Jt(Ht)||a.setLayoutProperty(Ht.id,"visibility","none")}Re("styledata",{...Je,map:a})}),{destroy(){n(0,Z=!1),a==null||a.remove(),Ke(Ge,a=null,a)}}}let oi=E;function $n(){if(V){let ie=fL(window.location.hash);ie.length>=3&&(n(12,D=ie[0]),n(11,A=[ie[2],ie[1]])),ie.length==5&&(n(16,F=ie[3]),n(15,O=ie[4]))}}return e.$$set=ie=>{"map"in ie&&n(14,w=ie.map),"class"in ie&&n(1,S=ie.class),"style"in ie&&n(17,E=ie.style),"diffStyleUpdates"in ie&&n(18,M=ie.diffStyleUpdates),"center"in ie&&n(11,A=ie.center),"zoom"in ie&&n(12,D=ie.zoom),"pitch"in ie&&n(15,O=ie.pitch),"bearing"in ie&&n(16,F=ie.bearing),"bounds"in ie&&n(13,G=ie.bounds),"hash"in ie&&n(19,V=ie.hash),"loaded"in ie&&n(0,Z=ie.loaded),"minZoom"in ie&&n(20,$=ie.minZoom),"maxZoom"in ie&&n(21,Q=ie.maxZoom),"antialias"in ie&&n(22,pt=ie.antialias),"zoomOnDoubleClick"in ie&&n(23,st=ie.zoomOnDoubleClick),"locale"in ie&&n(24,St=ie.locale),"interactive"in ie&&n(25,ut=ie.interactive),"attributionControl"in ie&&n(26,kt=ie.attributionControl),"cooperativeGestures"in ie&&n(27,mt=ie.cooperativeGestures),"preserveDrawingBuffer"in ie&&n(28,Et=ie.preserveDrawingBuffer),"maxBounds"in ie&&n(29,te=ie.maxBounds),"images"in ie&&n(30,Pt=ie.images),"standardControls"in ie&&n(2,ce=ie.standardControls),"filterLayers"in ie&&n(31,Jt=ie.filterLayers),"transformRequest"in ie&&n(32,re=ie.transformRequest),"$$scope"in ie&&n(37,_=ie.$$scope)},e.$$.update=()=>{if(e.$$.dirty[0]&4&&n(6,i=typeof ce=="boolean"?void 0:ce),e.$$.dirty[0]&8&&n(14,w=a),e.$$.dirty[0]&393224|e.$$.dirty[1]&56&&a&&!Fm(E,oi)){const ie=a.getStyle();if(Xe&&(Sn=ie.layers.filter(Je=>!Xe.includes(Je.id))),Dn){const Je=Object.keys(ie.sources).filter($e=>!Dn.includes($e));mn={};for(const $e of Je)mn[$e]=ie.sources[$e]}n(36,oi=E),a.setStyle(E,{diff:M}),Ke(Te,h=new Set,h),n(33,ze=new Set)}if(e.$$.dirty[0]&1073741849|e.$$.dirty[1]&4&&Z&&a!=null&&a.loaded())for(let ie of Pt)!h.has(ie.id)&&!ze.has(ie.id)&&!a.hasImage(ie.id)&&Fe(ie);e.$$.dirty[0]&1073741840&&n(5,r=Pt.every(ie=>h.has(ie.id))),e.$$.dirty[0]&2056&&A&&!Fm(A,a==null?void 0:a.getCenter())&&(a==null||a.panTo(A)),e.$$.dirty[0]&4104&&D&&!Fm(D,a==null?void 0:a.getZoom())&&(a==null||a.zoomTo(D)),e.$$.dirty[0]&8200&&G&&!Fm(G,a==null?void 0:a.getBounds())&&(a==null||a.fitBounds(G)),e.$$.dirty[0]&8388616&&(st?a==null||a.doubleClickZoom.enable():a==null||a.doubleClickZoom.disable())},[Z,S,ce,a,h,r,i,Ge,Te,ri,$n,A,D,G,w,O,F,E,M,V,$,Q,pt,st,St,ut,kt,mt,Et,te,Pt,Jt,re,ze,Xe,Dn,oi,_,u]}class SL extends nn{constructor(t){super(),en(this,t,wL,xL,He,{map:14,class:1,style:17,diffStyleUpdates:18,center:11,zoom:12,pitch:15,bearing:16,bounds:13,hash:19,loaded:0,minZoom:20,maxZoom:21,antialias:22,zoomOnDoubleClick:23,locale:24,interactive:25,attributionControl:26,cooperativeGestures:27,preserveDrawingBuffer:28,maxBounds:29,images:30,standardControls:2,filterLayers:31,transformRequest:32},null,[-1,-1])}}function IL(e){let t,n,i,r,a,h,u;const _=e[18].default,w=sr(_,e,e[17],null);return{c(){t=dt("div"),w&&w.c(),It(t,"tabindex",n=e[1]?0:void 0),It(t,"role",i=e[1]?"button":void 0),ei(t,"z-index",e[2])},m(S,E){vt(S,t,E),w&&w.m(t,null),a=!0,h||(u=[sy(e[6].call(null,t)),sy(r=EL.call(null,t,e[0])),Le(t,"click",e[19]),Le(t,"dblclick",e[20]),Le(t,"contextmenu",e[21]),Le(t,"mouseenter",e[22]),Le(t,"mouseleave",e[23]),Le(t,"mousemove",e[24]),Le(t,"keydown",e[7])],h=!0)},p(S,[E]){w&&w.p&&(!a||E&131072)&&lr(w,_,S,S[17],a?ar(_,S[17],E,null):ur(S[17]),null),(!a||E&2&&n!==(n=S[1]?0:void 0))&&It(t,"tabindex",n),(!a||E&2&&i!==(i=S[1]?"button":void 0))&&It(t,"role",i),r&&wg(r.update)&&E&1&&r.update.call(null,S[0]),E&4&&ei(t,"z-index",S[2])},i(S){a||(ft(w,S),a=!0)},o(S){bt(w,S),a=!1},d(S){S&&yt(t),w&&w.d(S),h=!1,Ji(u)}}}function EL(e,t){const n=e.className;function i(r){r?e.className=`${n} ${r}`:e.className=n}return i(t),{update:i}}function CL(e,t,n){let i,r,a,{$$slots:h={},$$scope:u}=t,{lngLat:_}=t,{class:w=void 0}=t,{interactive:S=!0}=t,{asButton:E=!1}=t,{draggable:M=!1}=t,{feature:A=null}=t,{offset:D=void 0}=t,{zIndex:O=void 0}=t,{rotation:F=0}=t,{opacity:G=1}=t;const V=zu(),{map:Z,layerEvent:$,self:Q}=UT();Se(e,Z,Jt=>n(26,a=Jt)),Se(e,$,Jt=>n(25,i=Jt)),Se(e,Q,Jt=>n(16,r=Jt));function pt(Jt){Ke(Q,r=new Ps.Marker({element:Jt,rotation:F,draggable:M,offset:D,opacity:G.toString()}).setLngLat(_).addTo(a),r);const re=()=>ut("dragstart"),Re=()=>{st(),ut("drag")},Ge=()=>{st(),ut("dragend")};return M&&(r.on("dragstart",re),r.on("drag",Re),r.on("dragend",Ge)),{destroy(){M&&(r==null||r.off("dragstart",re),r==null||r.off("drag",Re),r==null||r.off("dragend",Ge)),r==null||r.remove()}}}function st(){let Jt=r==null?void 0:r.getLngLat();Jt&&(Array.isArray(_)?n(9,_=[Jt.lng,Jt.lat]):_&&"lon"in _?n(9,_={lon:Jt.lng,lat:Jt.lat}):n(9,_=Jt))}function St(Jt){Jt.key===" "&&(Jt.preventDefault(),Jt.stopPropagation(),ut("click"))}function ut(Jt){if(!S)return;let re=r==null?void 0:r.getLngLat();if(!re)return;const Re=[re.lng,re.lat];let Ge={map:a,marker:r,lngLat:Re,features:[{type:"Feature",properties:(A==null?void 0:A.properties)??{},geometry:{type:"Point",coordinates:Re}}]};Ke($,i={...Ge,layerType:"marker",type:Jt},i),V(Jt,Ge)}const kt=()=>ut("click"),mt=()=>ut("dblclick"),Et=()=>ut("contextmenu"),te=Jt=>{ut("mouseenter")},Pt=()=>{ut("mouseleave")},ce=()=>ut("mousemove");return e.$$set=Jt=>{"lngLat"in Jt&&n(9,_=Jt.lngLat),"class"in Jt&&n(0,w=Jt.class),"interactive"in Jt&&n(10,S=Jt.interactive),"asButton"in Jt&&n(1,E=Jt.asButton),"draggable"in Jt&&n(11,M=Jt.draggable),"feature"in Jt&&n(12,A=Jt.feature),"offset"in Jt&&n(13,D=Jt.offset),"zIndex"in Jt&&n(2,O=Jt.zIndex),"rotation"in Jt&&n(14,F=Jt.rotation),"opacity"in Jt&&n(15,G=Jt.opacity),"$$scope"in Jt&&n(17,u=Jt.$$scope)},e.$$.update=()=>{e.$$.dirty&66048&&(r==null||r.setLngLat(_)),e.$$.dirty&73728&&(r==null||r.setOffset(D??[0,0])),e.$$.dirty&81920&&(r==null||r.setRotation(F)),e.$$.dirty&98304&&(r==null||r.setOpacity(G.toString()))},[w,E,O,Z,$,Q,pt,St,ut,_,S,M,A,D,F,G,r,u,h,kt,mt,Et,te,Pt,ce]}class cb extends nn{constructor(t){super(),en(this,t,CL,IL,He,{lngLat:9,class:0,interactive:10,asButton:1,draggable:11,feature:12,offset:13,zIndex:2,rotation:14,opacity:15})}}const TL=e=>({features:e[0]&16,data:e[0]&16,map:e[0]&4,close:e[0]&1}),hb=e=>{var t;return{features:e[4],data:(t=e[4])==null?void 0:t[0],map:e[2],close:e[31]}};function fb(e){let t,n,i=(e[4]||e[3]instanceof Ps.Marker)&&pb(e);return{c(){t=dt("div"),i&&i.c()},m(r,a){vt(r,t,a),i&&i.m(t,null),e[32](t),n=!0},p(r,a){r[4]||r[3]instanceof Ps.Marker?i?(i.p(r,a),a[0]&24&&ft(i,1)):(i=pb(r),i.c(),ft(i,1),i.m(t,null)):i&&(jn(),bt(i,1,1,()=>{i=null}),qn())},i(r){n||(ft(i),n=!0)},o(r){bt(i),n=!1},d(r){r&&yt(t),i&&i.d(),e[32](null)}}}function pb(e){let t;const n=e[30].default,i=sr(n,e,e[29],hb);return{c(){i&&i.c()},m(r,a){i&&i.m(r,a),t=!0},p(r,a){i&&i.p&&(!t||a[0]&536870933)&&lr(i,n,r,r[29],t?ar(n,r[29],a,TL):ur(r[29]),hb)},i(r){t||(ft(i,r),t=!0)},o(r){bt(i,r),t=!1},d(r){i&&i.d(r)}}}function LL(e){let t,n,i=e[9].default&&fb(e);return{c(){i&&i.c(),t=Ao()},m(r,a){i&&i.m(r,a),vt(r,t,a),n=!0},p(r,a){r[9].default?i?(i.p(r,a),a[0]&512&&ft(i,1)):(i=fb(r),i.c(),ft(i,1),i.m(t.parentNode,t)):i&&(jn(),bt(i,1,1,()=>{i=null}),qn())},i(r){n||(ft(i),n=!0)},o(r){bt(i),n=!1},d(r){r&&yt(t),i&&i.d(r)}}}function ML(e,t,n){let i,r,a,h,u,_,{$$slots:w={},$$scope:S}=t;const E=GS(w);let{closeButton:M=void 0}=t,{closeOnClickOutside:A=!0}=t,{closeOnClickInside:D=!1}=t,{closeOnMove:O=!1}=t,{openOn:F="click"}=t,{openIfTopMost:G=!0}=t,{focusAfterOpen:V=!0}=t,{anchor:Z=void 0}=t,{offset:$=void 0}=t,{popupClass:Q=void 0}=t,{maxWidth:pt=void 0}=t,{lngLat:st=void 0}=t,{html:St=void 0}=t,{open:ut=!1}=t;const kt=zu(),{map:mt,popupTarget:Et,layerEvent:te,layer:Pt,eventTopMost:ce}=Ef();Se(e,mt,Nt=>n(2,a=Nt)),Se(e,Et,Nt=>n(3,u=Nt)),Se(e,te,Nt=>n(28,h=Nt)),Se(e,Pt,Nt=>n(35,_=Nt));const Jt=["click","dblclick","contextmenu"];let re,Re=!1,Ge;function Te(){if(!re)return;let Nt=re.getElement();!Nt||Nt===Ge||(Ge=Nt,F==="hover"&&(Ge.style.pointerEvents="none"),Ge.addEventListener("mouseenter",()=>{n(24,Re=!0)},{passive:!0}),Ge.addEventListener("mouseleave",()=>{n(24,Re=!1)},{passive:!0}),Ge.addEventListener("click",()=>{D&&n(0,ut=!1)},{passive:!0}))}Sg(()=>{if(a)return a.on("click",ie),a.on("contextmenu",ie),typeof u=="string"&&(a.on("click",u,Dn),a.on("dblclick",u,Dn),a.on("contextmenu",u,Dn),a.on("mousemove",u,$n),a.on("mouseleave",u,oi),a.on("touchstart",u,mn),a.on("touchend",u,ri)),()=>{a!=null&&a.loaded()&&(re==null||re.remove(),a.off("click",ie),a.off("contextmenu",ie),u instanceof Ps.Marker?u.getPopup()===re&&u.setPopup(void 0):typeof u=="string"&&(a.off("click",u,Dn),a.off("dblclick",u,Dn),a.off("contextmenu",u,Dn),a.off("mousemove",u,$n),a.off("mouseleave",u,oi),a.off("touchstart",u,mn),a.off("touchend",u,ri)))}});function ze(Nt){return G?!("marker"in Nt)&&!GT(Nt)&&ce(Nt)!==_:!1}let Fe=null,Xe="normal";function Dn(Nt){Nt.type===F&&(ze(Nt)||("layerType"in Nt?Nt.layerType==="deckgl"?(n(10,st=Nt.coordinate),n(4,Fe=Nt.object?[Nt.object]:null)):(n(10,st=Nt.lngLat),n(4,Fe=Nt.features??[])):(n(10,st=Nt.lngLat),n(4,Fe=Nt.features??[])),setTimeout(()=>n(0,ut=!0))))}let Sn=null;function mn(Nt){Sn=Nt.point}function ri(Nt){if(!Sn||F!=="hover")return;let Ee=Sn.dist(Nt.point);Sn=null,Ee<3&&(n(10,st=Nt.lngLat),n(4,Fe=Nt.features??[]),re.isOpen()?n(25,Xe="justOpened"):(n(25,Xe="opening"),n(0,ut=!0)))}function oi(Nt){F!=="hover"||Sn||Xe!=="normal"||(n(0,ut=!1),n(4,Fe=null))}function $n(Nt){if(!(F!=="hover"||Sn||Xe!=="normal")){if(ze(Nt)){n(0,ut=!1),n(4,Fe=null);return}n(0,ut=!0),n(4,Fe=Nt.features??[]),n(10,st=Nt.lngLat)}}function ie(Nt){if(Xe==="justOpened"){n(25,Xe="normal");return}if(!A)return;let Ee=[Ge,u instanceof Ps.Marker?u==null?void 0:u.getElement():null];ut&&re.isOpen()&&!Ee.some(bi=>bi==null?void 0:bi.contains(Nt.originalEvent.target))&&(Nt.type==="contextmenu"&&F==="contextmenu"||Nt.type!=="contextmenu")&&n(0,ut=!1)}fs(()=>{a&&(re!=null&&re.isOpen())&&re.remove()});let Je;const $e=()=>n(0,ut=!1);function Ht(Nt){zr[Nt?"unshift":"push"](()=>{Je=Nt,n(1,Je)})}return e.$$set=Nt=>{"closeButton"in Nt&&n(11,M=Nt.closeButton),"closeOnClickOutside"in Nt&&n(12,A=Nt.closeOnClickOutside),"closeOnClickInside"in Nt&&n(13,D=Nt.closeOnClickInside),"closeOnMove"in Nt&&n(14,O=Nt.closeOnMove),"openOn"in Nt&&n(15,F=Nt.openOn),"openIfTopMost"in Nt&&n(16,G=Nt.openIfTopMost),"focusAfterOpen"in Nt&&n(17,V=Nt.focusAfterOpen),"anchor"in Nt&&n(18,Z=Nt.anchor),"offset"in Nt&&n(19,$=Nt.offset),"popupClass"in Nt&&n(20,Q=Nt.popupClass),"maxWidth"in Nt&&n(21,pt=Nt.maxWidth),"lngLat"in Nt&&n(10,st=Nt.lngLat),"html"in Nt&&n(22,St=Nt.html),"open"in Nt&&n(0,ut=Nt.open),"$$scope"in Nt&&n(29,S=Nt.$$scope)},e.$$.update=()=>{if(e.$$.dirty[0]&14336&&n(27,i=M??(!A&&!D)),e.$$.dirty[0]&146685952&&(re||(n(23,re=new Ps.Popup({closeButton:i,closeOnClick:!1,closeOnMove:O,focusAfterOpen:V,maxWidth:pt,className:Q,anchor:Z,offset:$})),Ge=re.getElement(),re.on("open",()=>{n(0,ut=!0),Te(),kt("open",re)}),re.on("close",()=>{n(0,ut=!1),kt("close",re)}),re.on("hover",()=>{kt("hover",re)}))),e.$$.dirty[0]&8421384&&re&&u instanceof Ps.Marker&&(F==="click"?u.setPopup(re):u.getPopup()===re&&u.setPopup(void 0)),e.$$.dirty[0]&268468224&&Jt.includes(F)&&(h==null?void 0:h.type)===F&&(Dn(h),Ke(te,h=null,h)),e.$$.dirty[0]&268468224&&n(26,r=F==="hover"&&((h==null?void 0:h.type)==="mousemove"||(h==null?void 0:h.type)==="mouseenter")),e.$$.dirty[0]&352354304&&F==="hover"&&te&&(r&&h&&(h.layerType==="deckgl"?(n(10,st=h.coordinate),n(4,Fe=h.object?[h.object]:null)):(n(10,st=h.lngLat),n(4,Fe=h.features??[]))),n(0,ut=(r||Re)??!1)),e.$$.dirty[0]&12582914&&(Je?re.setDOMContent(Je):St&&re.setHTML(St)),e.$$.dirty[0]&8389632&&st&&re.setLngLat(st),e.$$.dirty[0]&41943045&&a){let Nt=re.isOpen();ut&&!Nt?(re.addTo(a),Xe==="opening"&&n(25,Xe="justOpened")):!ut&&Nt&&re.remove()}},[ut,Je,a,u,Fe,mt,Et,te,Pt,E,st,M,A,D,O,F,G,V,Z,$,Q,pt,St,re,Re,Xe,r,i,h,S,w,$e,Ht]}class PL extends nn{constructor(t){super(),en(this,t,ML,LL,He,{closeButton:11,closeOnClickOutside:12,closeOnClickInside:13,closeOnMove:14,openOn:15,openIfTopMost:16,focusAfterOpen:17,anchor:18,offset:19,popupClass:20,maxWidth:21,lngLat:10,html:22,open:0},null,[-1,-1])}}function kL(e){let t;const n=e[16].default,i=sr(n,e,e[24],null);return{c(){i&&i.c()},m(r,a){i&&i.m(r,a),t=!0},p(r,a){i&&i.p&&(!t||a&16777216)&&lr(i,n,r,r[24],t?ar(n,r[24],a,null):ur(r[24]),null)},i(r){t||(ft(i,r),t=!0)},o(r){bt(i,r),t=!1},d(r){i&&i.d(r)}}}function AL(e){let t,n,i;function r(h){e[17](h)}let a={id:e[1],type:"symbol",source:e[2],sourceLayer:e[3],beforeId:e[4],beforeLayerType:e[5],paint:e[6],layout:e[7],filter:e[8],applyToClusters:e[9],minzoom:e[10],maxzoom:e[11],hoverCursor:e[12],manageHoverState:e[13],eventsIfTopMost:e[14],interactive:e[15],$$slots:{default:[kL]},$$scope:{ctx:e}};return e[0]!==void 0&&(a.hovered=e[0]),t=new Vg({props:a}),zr.push(()=>vc(t,"hovered",r)),t.$on("click",e[18]),t.$on("dblclick",e[19]),t.$on("contextmenu",e[20]),t.$on("mouseenter",e[21]),t.$on("mousemove",e[22]),t.$on("mouseleave",e[23]),{c(){Wt(t.$$.fragment)},m(h,u){jt(t,h,u),i=!0},p(h,[u]){const _={};u&2&&(_.id=h[1]),u&4&&(_.source=h[2]),u&8&&(_.sourceLayer=h[3]),u&16&&(_.beforeId=h[4]),u&32&&(_.beforeLayerType=h[5]),u&64&&(_.paint=h[6]),u&128&&(_.layout=h[7]),u&256&&(_.filter=h[8]),u&512&&(_.applyToClusters=h[9]),u&1024&&(_.minzoom=h[10]),u&2048&&(_.maxzoom=h[11]),u&4096&&(_.hoverCursor=h[12]),u&8192&&(_.manageHoverState=h[13]),u&16384&&(_.eventsIfTopMost=h[14]),u&32768&&(_.interactive=h[15]),u&16777216&&(_.$$scope={dirty:u,ctx:h}),!n&&u&1&&(n=!0,_.hovered=h[0],yc(()=>n=!1)),t.$set(_)},i(h){i||(ft(t.$$.fragment,h),i=!0)},o(h){bt(t.$$.fragment,h),i=!1},d(h){qt(t,h)}}}function DL(e,t,n){let{$$slots:i={},$$scope:r}=t,{id:a=If("symbol")}=t,{source:h=void 0}=t,{sourceLayer:u=void 0}=t,{beforeId:_=void 0}=t,{beforeLayerType:w=void 0}=t,{paint:S=void 0}=t,{layout:E=void 0}=t,{filter:M=void 0}=t,{applyToClusters:A=void 0}=t,{minzoom:D=void 0}=t,{maxzoom:O=void 0}=t,{hoverCursor:F=void 0}=t,{manageHoverState:G=!1}=t,{hovered:V=null}=t,{eventsIfTopMost:Z=!1}=t,{interactive:$=!0}=t;function Q(Et){V=Et,n(0,V)}function pt(Et){ii.call(this,e,Et)}function st(Et){ii.call(this,e,Et)}function St(Et){ii.call(this,e,Et)}function ut(Et){ii.call(this,e,Et)}function kt(Et){ii.call(this,e,Et)}function mt(Et){ii.call(this,e,Et)}return e.$$set=Et=>{"id"in Et&&n(1,a=Et.id),"source"in Et&&n(2,h=Et.source),"sourceLayer"in Et&&n(3,u=Et.sourceLayer),"beforeId"in Et&&n(4,_=Et.beforeId),"beforeLayerType"in Et&&n(5,w=Et.beforeLayerType),"paint"in Et&&n(6,S=Et.paint),"layout"in Et&&n(7,E=Et.layout),"filter"in Et&&n(8,M=Et.filter),"applyToClusters"in Et&&n(9,A=Et.applyToClusters),"minzoom"in Et&&n(10,D=Et.minzoom),"maxzoom"in Et&&n(11,O=Et.maxzoom),"hoverCursor"in Et&&n(12,F=Et.hoverCursor),"manageHoverState"in Et&&n(13,G=Et.manageHoverState),"hovered"in Et&&n(0,V=Et.hovered),"eventsIfTopMost"in Et&&n(14,Z=Et.eventsIfTopMost),"interactive"in Et&&n(15,$=Et.interactive),"$$scope"in Et&&n(24,r=Et.$$scope)},[V,a,h,u,_,w,S,E,M,A,D,O,F,G,Z,$,i,Q,pt,st,St,ut,kt,mt,r]}class Nw extends nn{constructor(t){super(),en(this,t,DL,AL,He,{id:1,source:2,sourceLayer:3,beforeId:4,beforeLayerType:5,paint:6,layout:7,filter:8,applyToClusters:9,minzoom:10,maxzoom:11,hoverCursor:12,manageHoverState:13,hovered:0,eventsIfTopMost:14,interactive:15})}}var Id=Uint8Array,Ow=Uint16Array,RL=Int32Array,NL=new Id([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]),OL=new Id([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]),zw=function(e,t){for(var n=new Ow(31),i=0;i<31;++i)n[i]=t+=1<>1|(ti&21845)<<1,Rl=(Rl&52428)>>2|(Rl&13107)<<2,Rl=(Rl&61680)>>4|(Rl&3855)<<4,BL[ti]=((Rl&65280)>>8|(Rl&255)<<8)>>1;var Rl,ti,Ug=new Id(288);for(ti=0;ti<144;++ti)Ug[ti]=8;var ti;for(ti=144;ti<256;++ti)Ug[ti]=9;var ti;for(ti=256;ti<280;++ti)Ug[ti]=7;var ti;for(ti=280;ti<288;++ti)Ug[ti]=8;var ti,VL=new Id(32);for(ti=0;ti<32;++ti)VL[ti]=5;var ti,UL=new Id(0),GL=typeof TextDecoder<"u"&&new TextDecoder,jL=0;try{GL.decode(UL,{stream:!0}),jL=1}catch{}function qL(e){let t,n,i,r,a,h;return t=new Vu({props:{id:"edit-polygon-fill",filter:CT,paint:{"fill-color":"red","fill-opacity":["case",["boolean",["get","hover"],"false"],1,.5]}}}),i=new Uu({props:{id:"edit-polygon-lines",filter:TT,paint:{"line-color":"black","line-width":8,"line-opacity":.5}}}),a=new Sd({props:{id:"edit-polygon-vertices",filter:LT,paint:{"circle-color":"black","circle-opacity":["case",["has","hovered"],1,.5],"circle-radius":10}}}),{c(){Wt(t.$$.fragment),n=Zt(),Wt(i.$$.fragment),r=Zt(),Wt(a.$$.fragment)},m(u,_){jt(t,u,_),vt(u,n,_),jt(i,u,_),vt(u,r,_),jt(a,u,_),h=!0},p:Pe,i(u){h||(ft(t.$$.fragment,u),ft(i.$$.fragment,u),ft(a.$$.fragment,u),h=!0)},o(u){bt(t.$$.fragment,u),bt(i.$$.fragment,u),bt(a.$$.fragment,u),h=!1},d(u){u&&(yt(n),yt(r)),qt(t,u),qt(i,u),qt(a,u)}}}function ZL(e){let t,n;return t=new $o({props:{data:e[0],$$slots:{default:[qL]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,[r]){const a={};r&1&&(a.data=i[0]),r&2&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function WL(e,t,n){let i;return Se(e,Dw,r=>n(0,i=r)),[i]}class HL extends nn{constructor(t){super(),en(this,t,WL,ZL,He,{})}}function XL(e){let t,n,i,r,a,h,u;return{c(){t=dt("button"),t.textContent="Import current view",n=Zt(),i=dt("i"),i.textContent="or...",r=Zt(),a=dt("button"),a.textContent="Draw an area to import on the map",It(t,"type","button"),It(a,"type","button")},m(_,w){vt(_,t,w),vt(_,n,w),vt(_,i,w),vt(_,r,w),vt(_,a,w),h||(u=[Le(t,"click",e[1]),Le(a,"click",e[2])],h=!0)},p:Pe,i:Pe,o:Pe,d(_){_&&(yt(t),yt(n),yt(i),yt(r),yt(a)),h=!1,Ji(u)}}}function $L(e){let t,n;return t=new NT({props:{polygonTool:e[0]}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&1&&(a.polygonTool=i[0]),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function YL(e){let t,n,i,r;const a=[$L,XL],h=[];function u(_,w){return _[0]?0:1}return t=u(e),n=h[t]=a[t](e),{c(){n.c(),i=Ao()},m(_,w){h[t].m(_,w),vt(_,i,w),r=!0},p(_,[w]){let S=t;t=u(_),t===S?h[t].p(_,w):(jn(),bt(h[S],1,1,()=>{h[S]=null}),qn(),n=h[t],n?n.p(_,w):(n=h[t]=a[t](_),n.c()),ft(n,1),n.m(i.parentNode,i))},i(_){r||(ft(n),r=!0)},o(_){bt(n),r=!1},d(_){_&&yt(i),h[t].d(_)}}}function Mp(e){return[e.lng,e.lat]}function KL(e,t,n){let{map:i}=t;const r=zu();let a=null;async function h(S){try{r("loading","Loading from Overpass");let M=await(await fetch(Bw(S))).text();r("gotXml",M)}catch(E){r("error",E.toString())}}function u(){let S=i.getBounds();return{type:"Feature",properties:{},geometry:{coordinates:[[Mp(S.getSouthWest()),Mp(S.getNorthWest()),Mp(S.getNorthEast()),Mp(S.getSouthEast()),Mp(S.getSouthWest())]],type:"Polygon"}}}async function _(){if(i){if(i.getZoom()<13){r("error","Zoom in more to import");return}await h(u())}}function w(){i&&(n(0,a=new PT(i)),a.startNew(),a.addEventListenerSuccess(async S=>{n(0,a=null),await h(S)}),a.addEventListenerFailure(()=>{n(0,a=null)}))}return e.$$set=S=>{"map"in S&&n(3,i=S.map)},[a,_,w,i]}class JL extends nn{constructor(t){super(),en(this,t,KL,YL,He,{map:3})}}function db(e,t,n){const i=e.slice();return i[1]=t[n][0],i[2]=t[n][1],i}function mb(e){let t,n,i=e[1]+"",r,a,h,u=e[2]+"",_,w;return{c(){t=dt("tr"),n=dt("td"),r=de(i),a=Zt(),h=dt("td"),_=de(u),w=Zt()},m(S,E){vt(S,t,E),ot(t,n),ot(n,r),ot(t,a),ot(t,h),ot(h,_),ot(t,w)},p(S,E){E&1&&i!==(i=S[1]+"")&&fi(r,i),E&1&&u!==(u=S[2]+"")&&fi(_,u)},d(S){S&&yt(t)}}}function QL(e){let t,n,i=ps(Object.entries(e[0])),r=[];for(let a=0;a{"properties"in r&&n(0,i=r.properties)},[i]}class Gg extends nn{constructor(t){super(),en(this,t,tM,QL,He,{properties:0})}}function Bw(e){let t='poly:"';for(let[i,r]of e.geometry.coordinates[0])t+=`${r} ${i} `;return t=t.slice(0,-1)+'"',`https://overpass-api.de/api/interpreter?data=${`(nwr(${t}); node(w)->.x; <;); out meta;`}`}const eM=["==",["geometry-type"],"Polygon"],nM=["==",["geometry-type"],"LineString"],iM=["==",["geometry-type"],"Point"];function Ap(e,t,n){let i=["match",e];for(let[r,a]of Object.entries(t))i.push(r),i.push(a);return i.push(n),i}function gb(e,t){let n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(t)),n.setAttribute("download",e),document.body.appendChild(n),n.click(),document.body.removeChild(n)}function Ti(e){if(e==null||e==null)throw new Error("Oops, notNull given something null");return e}let ue;const Nl=new Array(128).fill(void 0);Nl.push(void 0,null,!0,!1);function _n(e){return Nl[e]}let jp=Nl.length;function rM(e){e<132||(Nl[e]=jp,jp=e)}function qo(e){const t=_n(e);return rM(e),t}const Vw=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&Vw.decode();let Dp=null;function Hh(){return(Dp===null||Dp.byteLength===0)&&(Dp=new Uint8Array(ue.memory.buffer)),Dp}function Ms(e,t){return e=e>>>0,Vw.decode(Hh().subarray(e,e+t))}function ai(e){jp===Nl.length&&Nl.push(Nl.length+1);const t=jp;return jp=Nl[t],Nl[t]=e,t}let Zo=0;const Zm=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},oM=typeof Zm.encodeInto=="function"?function(e,t){return Zm.encodeInto(e,t)}:function(e,t){const n=Zm.encode(e);return t.set(n),{read:e.length,written:n.length}};function Ta(e,t,n){if(n===void 0){const u=Zm.encode(e),_=t(u.length,1)>>>0;return Hh().subarray(_,_+u.length).set(u),Zo=u.length,_}let i=e.length,r=t(i,1)>>>0;const a=Hh();let h=0;for(;h127)break;a[r+h]=u}if(h!==i){h!==0&&(e=e.slice(h)),r=n(r,i,i=h+e.length*3,1)>>>0;const u=Hh().subarray(r+h,r+i),_=oM(e,u);h+=_.written}return Zo=h,r}function jh(e){return e==null}let Rp=null;function Ze(){return(Rp===null||Rp.byteLength===0)&&(Rp=new Int32Array(ue.memory.buffer)),Rp}let Np=null;function Uw(){return(Np===null||Np.byteLength===0)&&(Np=new Float64Array(ue.memory.buffer)),Np}let Op=null;function sM(){return(Op===null||Op.byteLength===0)&&(Op=new BigInt64Array(ue.memory.buffer)),Op}function Ly(e){const t=typeof e;if(t=="number"||t=="boolean"||e==null)return`${e}`;if(t=="string")return`"${e}"`;if(t=="symbol"){const r=e.description;return r==null?"Symbol":`Symbol(${r})`}if(t=="function"){const r=e.name;return typeof r=="string"&&r.length>0?`Function(${r})`:"Function"}if(Array.isArray(e)){const r=e.length;let a="[";r>0&&(a+=Ly(e[0]));for(let h=1;h1)i=n[1];else return toString.call(e);if(i=="Object")try{return"Object("+JSON.stringify(e)+")"}catch{return"Object"}return e instanceof Error?`${e.name}: ${e.message} -${e.stack}`:i}function aM(e,t){const n=t(e.length*1,1)>>>0;return Hh().set(e,n/1),Zo=e.length,n}function lM(e,t){return e=e>>>0,Uw().subarray(e/8,e/8+t)}function uM(e,t){return e=e>>>0,Hh().subarray(e/1,e/1+t)}function gc(e,t){try{return e.apply(this,t)}catch(n){ue.__wbindgen_exn_store(ai(n))}}class Gw{__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();ue.__wbg_ltn_free(t)}constructor(t,n){try{const _=ue.__wbindgen_add_to_stack_pointer(-16),w=aM(t,ue.__wbindgen_malloc),S=Zo;var i=jh(n)?0:Ta(n,ue.__wbindgen_malloc,ue.__wbindgen_realloc),r=Zo;ue.ltn_new(_,w,S,i,r);var a=Ze()[_/4+0],h=Ze()[_/4+1],u=Ze()[_/4+2];if(u)throw qo(h);return this.__wbg_ptr=a>>>0,this}finally{ue.__wbindgen_add_to_stack_pointer(16)}}getInvertedBoundary(){let t,n;try{const w=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_getInvertedBoundary(w,this.__wbg_ptr);var i=Ze()[w/4+0],r=Ze()[w/4+1],a=Ze()[w/4+2],h=Ze()[w/4+3],u=i,_=r;if(h)throw u=0,_=0,qo(a);return t=u,n=_,Ms(u,_)}finally{ue.__wbindgen_add_to_stack_pointer(16),ue.__wbindgen_free(t,n,1)}}getBounds(){try{const r=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_getBounds(r,this.__wbg_ptr);var t=Ze()[r/4+0],n=Ze()[r/4+1],i=lM(t,n).slice();return ue.__wbindgen_free(t,n*8,8),i}finally{ue.__wbindgen_add_to_stack_pointer(16)}}toRouteSnapper(){try{const r=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_toRouteSnapper(r,this.__wbg_ptr);var t=Ze()[r/4+0],n=Ze()[r/4+1],i=uM(t,n).slice();return ue.__wbindgen_free(t,n*1,1),i}finally{ue.__wbindgen_add_to_stack_pointer(16)}}toRouteSnapperGj(){let t,n;try{const w=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_toRouteSnapperGj(w,this.__wbg_ptr);var i=Ze()[w/4+0],r=Ze()[w/4+1],a=Ze()[w/4+2],h=Ze()[w/4+3],u=i,_=r;if(h)throw u=0,_=0,qo(a);return t=u,n=_,Ms(u,_)}finally{ue.__wbindgen_add_to_stack_pointer(16),ue.__wbindgen_free(t,n,1)}}renderModalFilters(){let t,n;try{const w=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_renderModalFilters(w,this.__wbg_ptr);var i=Ze()[w/4+0],r=Ze()[w/4+1],a=Ze()[w/4+2],h=Ze()[w/4+3],u=i,_=r;if(h)throw u=0,_=0,qo(a);return t=u,n=_,Ms(u,_)}finally{ue.__wbindgen_add_to_stack_pointer(16),ue.__wbindgen_free(t,n,1)}}renderNeighbourhood(){let t,n;try{const w=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_renderNeighbourhood(w,this.__wbg_ptr);var i=Ze()[w/4+0],r=Ze()[w/4+1],a=Ze()[w/4+2],h=Ze()[w/4+3],u=i,_=r;if(h)throw u=0,_=0,qo(a);return t=u,n=_,Ms(u,_)}finally{ue.__wbindgen_add_to_stack_pointer(16),ue.__wbindgen_free(t,n,1)}}setNeighbourhoodBoundary(t,n){try{const a=ue.__wbindgen_add_to_stack_pointer(-16),h=Ta(t,ue.__wbindgen_malloc,ue.__wbindgen_realloc),u=Zo;ue.ltn_setNeighbourhoodBoundary(a,this.__wbg_ptr,h,u,ai(n));var i=Ze()[a/4+0],r=Ze()[a/4+1];if(r)throw qo(i)}finally{ue.__wbindgen_add_to_stack_pointer(16)}}deleteNeighbourhoodBoundary(t){const n=Ta(t,ue.__wbindgen_malloc,ue.__wbindgen_realloc),i=Zo;ue.ltn_deleteNeighbourhoodBoundary(this.__wbg_ptr,n,i)}renameNeighbourhoodBoundary(t,n){const i=Ta(t,ue.__wbindgen_malloc,ue.__wbindgen_realloc),r=Zo,a=Ta(n,ue.__wbindgen_malloc,ue.__wbindgen_realloc),h=Zo;ue.ltn_renameNeighbourhoodBoundary(this.__wbg_ptr,i,r,a,h)}setCurrentNeighbourhood(t){try{const r=ue.__wbindgen_add_to_stack_pointer(-16),a=Ta(t,ue.__wbindgen_malloc,ue.__wbindgen_realloc),h=Zo;ue.ltn_setCurrentNeighbourhood(r,this.__wbg_ptr,a,h);var n=Ze()[r/4+0],i=Ze()[r/4+1];if(i)throw qo(n)}finally{ue.__wbindgen_add_to_stack_pointer(16)}}addModalFilter(t,n){try{const a=ue.__wbindgen_add_to_stack_pointer(-16),h=Ta(n,ue.__wbindgen_malloc,ue.__wbindgen_realloc),u=Zo;ue.ltn_addModalFilter(a,this.__wbg_ptr,ai(t),h,u);var i=Ze()[a/4+0],r=Ze()[a/4+1];if(r)throw qo(i)}finally{ue.__wbindgen_add_to_stack_pointer(16)}}addManyModalFilters(t,n){try{const a=ue.__wbindgen_add_to_stack_pointer(-16),h=Ta(n,ue.__wbindgen_malloc,ue.__wbindgen_realloc),u=Zo;ue.ltn_addManyModalFilters(a,this.__wbg_ptr,ai(t),h,u);var i=Ze()[a/4+0],r=Ze()[a/4+1];if(r)throw qo(i)}finally{ue.__wbindgen_add_to_stack_pointer(16)}}deleteModalFilter(t){ue.ltn_deleteModalFilter(this.__wbg_ptr,t)}toggleDirection(t){ue.ltn_toggleDirection(this.__wbg_ptr,t)}undo(){ue.ltn_undo(this.__wbg_ptr)}redo(){ue.ltn_redo(this.__wbg_ptr)}getShortcutsCrossingRoad(t){let n,i;try{const S=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_getShortcutsCrossingRoad(S,this.__wbg_ptr,t);var r=Ze()[S/4+0],a=Ze()[S/4+1],h=Ze()[S/4+2],u=Ze()[S/4+3],_=r,w=a;if(u)throw _=0,w=0,qo(h);return n=_,i=w,Ms(_,w)}finally{ue.__wbindgen_add_to_stack_pointer(16),ue.__wbindgen_free(n,i,1)}}getAllShortcuts(){let t,n;try{const w=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_getAllShortcuts(w,this.__wbg_ptr);var i=Ze()[w/4+0],r=Ze()[w/4+1],a=Ze()[w/4+2],h=Ze()[w/4+3],u=i,_=r;if(h)throw u=0,_=0,qo(a);return t=u,n=_,Ms(u,_)}finally{ue.__wbindgen_add_to_stack_pointer(16),ue.__wbindgen_free(t,n,1)}}toSavefile(){let t,n;try{const w=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_toSavefile(w,this.__wbg_ptr);var i=Ze()[w/4+0],r=Ze()[w/4+1],a=Ze()[w/4+2],h=Ze()[w/4+3],u=i,_=r;if(h)throw u=0,_=0,qo(a);return t=u,n=_,Ms(u,_)}finally{ue.__wbindgen_add_to_stack_pointer(16),ue.__wbindgen_free(t,n,1)}}loadSavefile(t){try{const r=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_loadSavefile(r,this.__wbg_ptr,ai(t));var n=Ze()[r/4+0],i=Ze()[r/4+1];if(i)throw qo(n)}finally{ue.__wbindgen_add_to_stack_pointer(16)}}compareRoute(t,n,i,r,a){let h,u;try{const D=ue.__wbindgen_add_to_stack_pointer(-16);ue.ltn_compareRoute(D,this.__wbg_ptr,t,n,i,r,a);var _=Ze()[D/4+0],w=Ze()[D/4+1],S=Ze()[D/4+2],E=Ze()[D/4+3],M=_,A=w;if(E)throw M=0,A=0,qo(S);return h=M,u=A,Ms(M,A)}finally{ue.__wbindgen_add_to_stack_pointer(16),ue.__wbindgen_free(h,u,1)}}}async function cM(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{const n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}function hM(){const e={};return e.wbg={},e.wbg.__wbindgen_object_drop_ref=function(t){qo(t)},e.wbg.__wbindgen_error_new=function(t,n){const i=new Error(Ms(t,n));return ai(i)},e.wbg.__wbindgen_string_get=function(t,n){const i=_n(n),r=typeof i=="string"?i:void 0;var a=jh(r)?0:Ta(r,ue.__wbindgen_malloc,ue.__wbindgen_realloc),h=Zo;Ze()[t/4+1]=h,Ze()[t/4+0]=a},e.wbg.__wbindgen_boolean_get=function(t){const n=_n(t);return typeof n=="boolean"?n?1:0:2},e.wbg.__wbindgen_is_bigint=function(t){return typeof _n(t)=="bigint"},e.wbg.__wbindgen_bigint_from_i64=function(t){return ai(t)},e.wbg.__wbindgen_jsval_eq=function(t,n){return _n(t)===_n(n)},e.wbg.__wbindgen_bigint_from_u64=function(t){const n=BigInt.asUintN(64,t);return ai(n)},e.wbg.__wbindgen_number_get=function(t,n){const i=_n(n),r=typeof i=="number"?i:void 0;Uw()[t/8+1]=jh(r)?0:r,Ze()[t/4+0]=!jh(r)},e.wbg.__wbindgen_is_object=function(t){const n=_n(t);return typeof n=="object"&&n!==null},e.wbg.__wbindgen_in=function(t,n){return _n(t)in _n(n)},e.wbg.__wbindgen_string_new=function(t,n){const i=Ms(t,n);return ai(i)},e.wbg.__wbindgen_is_undefined=function(t){return _n(t)===void 0},e.wbg.__wbindgen_jsval_loose_eq=function(t,n){return _n(t)==_n(n)},e.wbg.__wbindgen_object_clone_ref=function(t){const n=_n(t);return ai(n)},e.wbg.__wbg_getwithrefkey_3b3c46ba20582127=function(t,n){const i=_n(t)[_n(n)];return ai(i)},e.wbg.__wbg_debug_34c9290896ec9856=function(t){console.debug(_n(t))},e.wbg.__wbg_error_e60eff06f24ab7a4=function(t){console.error(_n(t))},e.wbg.__wbg_info_d7d58472d0bab115=function(t){console.info(_n(t))},e.wbg.__wbg_log_a4530b4fe289336f=function(t){console.log(_n(t))},e.wbg.__wbg_warn_f260f49434e45e62=function(t){console.warn(_n(t))},e.wbg.__wbg_new_abda76e883ba8a5f=function(){const t=new Error;return ai(t)},e.wbg.__wbg_stack_658279fe44541cf6=function(t,n){const i=_n(n).stack,r=Ta(i,ue.__wbindgen_malloc,ue.__wbindgen_realloc),a=Zo;Ze()[t/4+1]=a,Ze()[t/4+0]=r},e.wbg.__wbg_error_f851667af71bcfc6=function(t,n){let i,r;try{i=t,r=n,console.error(Ms(t,n))}finally{ue.__wbindgen_free(i,r,1)}},e.wbg.__wbg_performance_3f3012faa4463882=function(t){const n=_n(t).performance;return ai(n)},e.wbg.__wbg_now_2fd65358804c9485=function(t){return _n(t).now()},e.wbg.__wbg_get_f01601b5a68d10e3=function(t,n){const i=_n(t)[n>>>0];return ai(i)},e.wbg.__wbg_length_1009b1af0c481d7b=function(t){return _n(t).length},e.wbg.__wbindgen_is_function=function(t){return typeof _n(t)=="function"},e.wbg.__wbg_newnoargs_c62ea9419c21fbac=function(t,n){const i=new Function(Ms(t,n));return ai(i)},e.wbg.__wbg_next_9b877f231f476d01=function(t){const n=_n(t).next;return ai(n)},e.wbg.__wbg_next_6529ee0cca8d57ed=function(){return gc(function(t){const n=_n(t).next();return ai(n)},arguments)},e.wbg.__wbg_done_5fe336b092d60cf2=function(t){return _n(t).done},e.wbg.__wbg_value_0c248a78fdc8e19f=function(t){const n=_n(t).value;return ai(n)},e.wbg.__wbg_iterator_db7ca081358d4fb2=function(){return ai(Symbol.iterator)},e.wbg.__wbg_get_7b48513de5dc5ea4=function(){return gc(function(t,n){const i=Reflect.get(_n(t),_n(n));return ai(i)},arguments)},e.wbg.__wbg_call_90c26b09837aba1c=function(){return gc(function(t,n){const i=_n(t).call(_n(n));return ai(i)},arguments)},e.wbg.__wbg_self_f0e34d89f33b99fd=function(){return gc(function(){const t=self.self;return ai(t)},arguments)},e.wbg.__wbg_window_d3b084224f4774d7=function(){return gc(function(){const t=window.window;return ai(t)},arguments)},e.wbg.__wbg_globalThis_9caa27ff917c6860=function(){return gc(function(){const t=globalThis.globalThis;return ai(t)},arguments)},e.wbg.__wbg_global_35dfdd59a4da3e74=function(){return gc(function(){const t=global.global;return ai(t)},arguments)},e.wbg.__wbg_isArray_74fb723e24f76012=function(t){return Array.isArray(_n(t))},e.wbg.__wbg_instanceof_ArrayBuffer_e7d53d51371448e2=function(t){let n;try{n=_n(t)instanceof ArrayBuffer}catch{n=!1}return n},e.wbg.__wbg_isSafeInteger_f93fde0dca9820f8=function(t){return Number.isSafeInteger(_n(t))},e.wbg.__wbg_entries_9e2e2aa45aa5094a=function(t){const n=Object.entries(_n(t));return ai(n)},e.wbg.__wbg_buffer_a448f833075b71ba=function(t){const n=_n(t).buffer;return ai(n)},e.wbg.__wbg_new_8f67e318f15d7254=function(t){const n=new Uint8Array(_n(t));return ai(n)},e.wbg.__wbg_set_2357bf09366ee480=function(t,n,i){_n(t).set(_n(n),i>>>0)},e.wbg.__wbg_length_1d25fa9e4ac21ce7=function(t){return _n(t).length},e.wbg.__wbg_instanceof_Uint8Array_bced6f43aed8c1aa=function(t){let n;try{n=_n(t)instanceof Uint8Array}catch{n=!1}return n},e.wbg.__wbindgen_bigint_get_as_i64=function(t,n){const i=_n(n),r=typeof i=="bigint"?i:void 0;sM()[t/8+1]=jh(r)?BigInt(0):r,Ze()[t/4+0]=!jh(r)},e.wbg.__wbindgen_debug_string=function(t,n){const i=Ly(_n(n)),r=Ta(i,ue.__wbindgen_malloc,ue.__wbindgen_realloc),a=Zo;Ze()[t/4+1]=a,Ze()[t/4+0]=r},e.wbg.__wbindgen_throw=function(t,n){throw new Error(Ms(t,n))},e.wbg.__wbindgen_memory=function(){const t=ue.memory;return ai(t)},e}function fM(e,t){return ue=e.exports,jw.__wbindgen_wasm_module=t,Op=null,Np=null,Rp=null,Dp=null,ue}async function jw(e){if(ue!==void 0)return ue;typeof e>"u"&&(e="/ltn/assets/backend_bg.wasm");const t=hM();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:n,module:i}=await cM(await e,t);return fM(n,i)}let Ye;const qw=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&qw.decode();let zp=null;function qp(){return(zp===null||zp.byteLength===0)&&(zp=new Uint8Array(Ye.memory.buffer)),zp}function Ol(e,t){return e=e>>>0,qw.decode(qp().subarray(e,e+t))}const zl=new Array(128).fill(void 0);zl.push(void 0,null,!0,!1);let Zp=zl.length;function Nr(e){Zp===zl.length&&zl.push(zl.length+1);const t=Zp;return Zp=zl[t],zl[t]=e,t}function Mn(e){return zl[e]}function pM(e){e<132||(zl[e]=Zp,Zp=e)}function Wm(e){const t=Mn(e);return pM(e),t}function ry(e){return e==null}let Fp=null;function dM(){return(Fp===null||Fp.byteLength===0)&&(Fp=new Float64Array(Ye.memory.buffer)),Fp}let Bp=null;function Ei(){return(Bp===null||Bp.byteLength===0)&&(Bp=new Int32Array(Ye.memory.buffer)),Bp}let Su=0;const Hm=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},mM=typeof Hm.encodeInto=="function"?function(e,t){return Hm.encodeInto(e,t)}:function(e,t){const n=Hm.encode(e);return t.set(n),{read:e.length,written:n.length}};function Bm(e,t,n){if(n===void 0){const u=Hm.encode(e),_=t(u.length,1)>>>0;return qp().subarray(_,_+u.length).set(u),Su=u.length,_}let i=e.length,r=t(i,1)>>>0;const a=qp();let h=0;for(;h127)break;a[r+h]=u}if(h!==i){h!==0&&(e=e.slice(h)),r=n(r,i,i=h+e.length*3,1)>>>0;const u=qp().subarray(r+h,r+i),_=mM(e,u);h+=_.written}return Su=h,r}function My(e){const t=typeof e;if(t=="number"||t=="boolean"||e==null)return`${e}`;if(t=="string")return`"${e}"`;if(t=="symbol"){const r=e.description;return r==null?"Symbol":`Symbol(${r})`}if(t=="function"){const r=e.name;return typeof r=="string"&&r.length>0?`Function(${r})`:"Function"}if(Array.isArray(e)){const r=e.length;let a="[";r>0&&(a+=My(e[0]));for(let h=1;h1)i=n[1];else return toString.call(e);if(i=="Object")try{return"Object("+JSON.stringify(e)+")"}catch{return"Object"}return e instanceof Error?`${e.name}: ${e.message} -${e.stack}`:i}function gM(e,t){const n=t(e.length*1,1)>>>0;return qp().set(e,n/1),Su=e.length,n}function oy(e,t){try{return e.apply(this,t)}catch(n){Ye.__wbindgen_exn_store(Nr(n))}}class dg{static __wrap(t){t=t>>>0;const n=Object.create(dg.prototype);return n.__wbg_ptr=t,n}__destroy_into_raw(){const t=this.__wbg_ptr;return this.__wbg_ptr=0,t}free(){const t=this.__destroy_into_raw();Ye.__wbg_jsroutesnapper_free(t)}constructor(t){try{const a=Ye.__wbindgen_add_to_stack_pointer(-16),h=gM(t,Ye.__wbindgen_malloc),u=Su;Ye.jsroutesnapper_new(a,h,u);var n=Ei()[a/4+0],i=Ei()[a/4+1],r=Ei()[a/4+2];if(r)throw Wm(i);return dg.__wrap(n)}finally{Ye.__wbindgen_add_to_stack_pointer(16)}}setRouteConfig(t){Ye.jsroutesnapper_setRouteConfig(this.__wbg_ptr,Nr(t))}setAreaMode(){Ye.jsroutesnapper_setAreaMode(this.__wbg_ptr)}getConfig(){let t,n;try{const a=Ye.__wbindgen_add_to_stack_pointer(-16);Ye.jsroutesnapper_getConfig(a,this.__wbg_ptr);var i=Ei()[a/4+0],r=Ei()[a/4+1];return t=i,n=r,Ol(i,r)}finally{Ye.__wbindgen_add_to_stack_pointer(16),Ye.__wbindgen_free(t,n,1)}}toFinalFeature(){try{const i=Ye.__wbindgen_add_to_stack_pointer(-16);Ye.jsroutesnapper_toFinalFeature(i,this.__wbg_ptr);var t=Ei()[i/4+0],n=Ei()[i/4+1];let r;return t!==0&&(r=Ol(t,n).slice(),Ye.__wbindgen_free(t,n*1)),r}finally{Ye.__wbindgen_add_to_stack_pointer(16)}}renderGeojson(){let t,n;try{const a=Ye.__wbindgen_add_to_stack_pointer(-16);Ye.jsroutesnapper_renderGeojson(a,this.__wbg_ptr);var i=Ei()[a/4+0],r=Ei()[a/4+1];return t=i,n=r,Ol(i,r)}finally{Ye.__wbindgen_add_to_stack_pointer(16),Ye.__wbindgen_free(t,n,1)}}toggleSnapMode(){Ye.jsroutesnapper_toggleSnapMode(this.__wbg_ptr)}onMouseMove(t,n,i){return Ye.jsroutesnapper_onMouseMove(this.__wbg_ptr,t,n,i)!==0}onClick(){Ye.jsroutesnapper_onClick(this.__wbg_ptr)}onDragStart(){return Ye.jsroutesnapper_onDragStart(this.__wbg_ptr)!==0}onMouseUp(){return Ye.jsroutesnapper_onMouseUp(this.__wbg_ptr)!==0}clearState(){Ye.jsroutesnapper_clearState(this.__wbg_ptr)}editExisting(t){try{const r=Ye.__wbindgen_add_to_stack_pointer(-16);Ye.jsroutesnapper_editExisting(r,this.__wbg_ptr,Nr(t));var n=Ei()[r/4+0],i=Ei()[r/4+1];if(i)throw Wm(n)}finally{Ye.__wbindgen_add_to_stack_pointer(16)}}debugRenderGraph(){let t,n;try{const a=Ye.__wbindgen_add_to_stack_pointer(-16);Ye.jsroutesnapper_debugRenderGraph(a,this.__wbg_ptr);var i=Ei()[a/4+0],r=Ei()[a/4+1];return t=i,n=r,Ol(i,r)}finally{Ye.__wbindgen_add_to_stack_pointer(16),Ye.__wbindgen_free(t,n,1)}}routeNameForWaypoints(t){let n,i;try{const S=Ye.__wbindgen_add_to_stack_pointer(-16);Ye.jsroutesnapper_routeNameForWaypoints(S,this.__wbg_ptr,Nr(t));var r=Ei()[S/4+0],a=Ei()[S/4+1],h=Ei()[S/4+2],u=Ei()[S/4+3],_=r,w=a;if(u)throw _=0,w=0,Wm(h);return n=_,i=w,Ol(_,w)}finally{Ye.__wbindgen_add_to_stack_pointer(16),Ye.__wbindgen_free(n,i,1)}}addSnappedWaypoint(t,n){Ye.jsroutesnapper_addSnappedWaypoint(this.__wbg_ptr,t,n)}undo(){Ye.jsroutesnapper_undo(this.__wbg_ptr)}}async function _M(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(i){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",i);else throw i}const n=await e.arrayBuffer();return await WebAssembly.instantiate(n,t)}else{const n=await WebAssembly.instantiate(e,t);return n instanceof WebAssembly.Instance?{instance:n,module:e}:n}}function yM(){const e={};return e.wbg={},e.wbg.__wbindgen_string_new=function(t,n){const i=Ol(t,n);return Nr(i)},e.wbg.__wbindgen_object_drop_ref=function(t){Wm(t)},e.wbg.__wbindgen_is_object=function(t){const n=Mn(t);return typeof n=="object"&&n!==null},e.wbg.__wbindgen_is_undefined=function(t){return Mn(t)===void 0},e.wbg.__wbindgen_in=function(t,n){return Mn(t)in Mn(n)},e.wbg.__wbindgen_boolean_get=function(t){const n=Mn(t);return typeof n=="boolean"?n?1:0:2},e.wbg.__wbindgen_number_get=function(t,n){const i=Mn(n),r=typeof i=="number"?i:void 0;dM()[t/8+1]=ry(r)?0:r,Ei()[t/4+0]=!ry(r)},e.wbg.__wbindgen_error_new=function(t,n){const i=new Error(Ol(t,n));return Nr(i)},e.wbg.__wbindgen_object_clone_ref=function(t){const n=Mn(t);return Nr(n)},e.wbg.__wbindgen_jsval_loose_eq=function(t,n){return Mn(t)==Mn(n)},e.wbg.__wbindgen_string_get=function(t,n){const i=Mn(n),r=typeof i=="string"?i:void 0;var a=ry(r)?0:Bm(r,Ye.__wbindgen_malloc,Ye.__wbindgen_realloc),h=Su;Ei()[t/4+1]=h,Ei()[t/4+0]=a},e.wbg.__wbg_String_4370c5505c674d30=function(t,n){const i=String(Mn(n)),r=Bm(i,Ye.__wbindgen_malloc,Ye.__wbindgen_realloc),a=Su;Ei()[t/4+1]=a,Ei()[t/4+0]=r},e.wbg.__wbg_getwithrefkey_d1f0d12f1f1b63ea=function(t,n){const i=Mn(t)[Mn(n)];return Nr(i)},e.wbg.__wbg_new_abda76e883ba8a5f=function(){const t=new Error;return Nr(t)},e.wbg.__wbg_stack_658279fe44541cf6=function(t,n){const i=Mn(n).stack,r=Bm(i,Ye.__wbindgen_malloc,Ye.__wbindgen_realloc),a=Su;Ei()[t/4+1]=a,Ei()[t/4+0]=r},e.wbg.__wbg_error_f851667af71bcfc6=function(t,n){let i,r;try{i=t,r=n,console.error(Ol(t,n))}finally{Ye.__wbindgen_free(i,r,1)}},e.wbg.__wbg_debug_9a6b3243fbbebb61=function(t){console.debug(Mn(t))},e.wbg.__wbg_error_788ae33f81d3b84b=function(t){console.error(Mn(t))},e.wbg.__wbg_info_2e30e8204b29d91d=function(t){console.info(Mn(t))},e.wbg.__wbg_log_1d3ae0273d8f4f8a=function(t){console.log(Mn(t))},e.wbg.__wbg_warn_d60e832f9882c1b2=function(t){console.warn(Mn(t))},e.wbg.__wbg_get_44be0491f933a435=function(t,n){const i=Mn(t)[n>>>0];return Nr(i)},e.wbg.__wbg_length_fff51ee6522a1a18=function(t){return Mn(t).length},e.wbg.__wbindgen_is_function=function(t){return typeof Mn(t)=="function"},e.wbg.__wbg_next_526fc47e980da008=function(t){const n=Mn(t).next;return Nr(n)},e.wbg.__wbg_next_ddb3312ca1c4e32a=function(){return oy(function(t){const n=Mn(t).next();return Nr(n)},arguments)},e.wbg.__wbg_done_5c1f01fb660d73b5=function(t){return Mn(t).done},e.wbg.__wbg_value_1695675138684bd5=function(t){const n=Mn(t).value;return Nr(n)},e.wbg.__wbg_iterator_97f0c81209c6c35a=function(){return Nr(Symbol.iterator)},e.wbg.__wbg_get_97b561fb56f034b5=function(){return oy(function(t,n){const i=Reflect.get(Mn(t),Mn(n));return Nr(i)},arguments)},e.wbg.__wbg_call_cb65541d95d71282=function(){return oy(function(t,n){const i=Mn(t).call(Mn(n));return Nr(i)},arguments)},e.wbg.__wbg_isArray_4c24b343cb13cfb1=function(t){return Array.isArray(Mn(t))},e.wbg.__wbg_instanceof_ArrayBuffer_39ac22089b74fddb=function(t){let n;try{n=Mn(t)instanceof ArrayBuffer}catch{n=!1}return n},e.wbg.__wbg_buffer_085ec1f694018c4f=function(t){const n=Mn(t).buffer;return Nr(n)},e.wbg.__wbg_new_8125e318e6245eed=function(t){const n=new Uint8Array(Mn(t));return Nr(n)},e.wbg.__wbg_set_5cf90238115182c3=function(t,n,i){Mn(t).set(Mn(n),i>>>0)},e.wbg.__wbg_length_72e2208bbc0efc61=function(t){return Mn(t).length},e.wbg.__wbg_instanceof_Uint8Array_d8d9cb2b8e8ac1d4=function(t){let n;try{n=Mn(t)instanceof Uint8Array}catch{n=!1}return n},e.wbg.__wbindgen_debug_string=function(t,n){const i=My(Mn(n)),r=Bm(i,Ye.__wbindgen_malloc,Ye.__wbindgen_realloc),a=Su;Ei()[t/4+1]=a,Ei()[t/4+0]=r},e.wbg.__wbindgen_throw=function(t,n){throw new Error(Ol(t,n))},e.wbg.__wbindgen_memory=function(){const t=Ye.memory;return Nr(t)},e}function vM(e,t){return Ye=e.exports,Zw.__wbindgen_wasm_module=t,Fp=null,Bp=null,zp=null,Ye}async function Zw(e){if(Ye!==void 0)return Ye;typeof e>"u"&&(e="/ltn/assets/route_snapper_bg.wasm");const t=yM();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));const{instance:n,module:i}=await _M(await e,t);return vM(n,i)}const bM=30;class xM{constructor(t,n,i,r,a){this.onMouseMove=h=>{if(!this.active)return;const u=[h.point.x-bM,h.point.y],_=this.map.unproject(h.point).distanceTo(this.map.unproject(u));this.inner.onMouseMove(h.lngLat.lng,h.lngLat.lat,_)&&(this.redraw(),this.dataUpdated())},this.onClick=()=>{this.active&&(this.inner.onClick(),this.redraw(),this.dataUpdated())},this.onDoubleClick=h=>{this.active&&(h.preventDefault(),this.inner.onClick(),this.finish())},this.onDragStart=()=>{this.active&&this.inner.onDragStart()&&this.map.dragPan.disable()},this.onMouseUp=()=>{this.active&&this.inner.onMouseUp()&&this.map.dragPan.enable()},this.onKeyDown=h=>{this.active&&h.key=="Escape"&&(h.stopPropagation(),this.cancel())},this.onKeyPress=h=>{this.active&&h.target.tagName!="INPUT"&&(h.key=="Enter"?(h.stopPropagation(),this.finish()):h.key=="s"||h.key=="S"?(h.stopPropagation(),this.inner.toggleSnapMode(),this.redraw()):h.key=="z"&&h.ctrlKey&&this.undo())},this.map=t,console.time("Deserialize and setup JsRouteSnapper"),this.inner=new dg(n),console.timeEnd("Deserialize and setup JsRouteSnapper"),this.active=!1,this.eventListenersSuccess=[],this.eventListenersUpdated=[],this.eventListenersFailure=[],this.routeToolGj=i,this.snapMode=r,this.undoLength=a,this.map.on("mousemove",this.onMouseMove),this.map.on("click",this.onClick),this.map.on("dblclick",this.onDoubleClick),this.map.on("dragstart",this.onDragStart),this.map.on("mouseup",this.onMouseUp),document.addEventListener("keydown",this.onKeyDown),document.addEventListener("keypress",this.onKeyPress)}tearDown(){this.map.off("mousemove",this.onMouseMove),this.map.off("click",this.onClick),this.map.off("dblclick",this.onDoubleClick),this.map.off("dragstart",this.onDragStart),this.map.off("mouseup",this.onMouseUp),document.removeEventListener("keydown",this.onKeyDown),document.removeEventListener("keypress",this.onKeyPress)}startRoute(){this.active||(this.active=!0,this.map.boxZoom.disable(),this.map.doubleClickZoom.disable())}startArea(){this.active||(this.inner.setAreaMode(),this.active=!0,this.map.boxZoom.disable(),this.map.doubleClickZoom.disable())}stop(){this.active=!1,this.inner.clearState(),this.redraw(),this.map.boxZoom.enable(),this.map.doubleClickZoom.enable()}editExistingRoute(t){this.active&&window.alert("Bug: editExistingRoute called when tool is already active"),t.properties.waypoints||(t.properties.waypoints=[{lon:t.geometry.coordinates[0][0],lat:t.geometry.coordinates[0][1],snapped:!0},{lon:t.geometry.coordinates[t.geometry.coordinates.length-1][0],lat:t.geometry.coordinates[t.geometry.coordinates.length-1][1],snapped:!0}]),this.startRoute(),this.inner.editExisting(t.properties.waypoints),this.redraw()}editExistingArea(t){this.active&&window.alert("Bug: editExistingArea called when tool is already active"),t.properties.waypoints||window.alert("Bug: editExistingArea called for a polygon not produced by the route-snapper"),this.startArea(),this.inner.editExisting(t.properties.waypoints),this.redraw()}addEventListenerSuccess(t){this.eventListenersSuccess.push(t)}addEventListenerUpdated(t){this.eventListenersUpdated.push(t)}addEventListenerFailure(t){this.eventListenersFailure.push(t)}clearEventListeners(){this.eventListenersSuccess=[],this.eventListenersUpdated=[],this.eventListenersFailure=[]}isActive(){return this.active}finish(){let t=this.inner.toFinalFeature();if(t)for(let n of this.eventListenersSuccess)n(JSON.parse(t));else for(let n of this.eventListenersFailure)n();this.stop()}cancel(){this.inner.clearState(),this.finish()}setRouteConfig(t){this.inner.setRouteConfig(t),this.redraw()}addSnappedWaypoint(t){this.inner.addSnappedWaypoint(t[0],t[1]),this.redraw()}undo(){this.inner.undo(),this.redraw()}toggleSnapMode(){this.inner.toggleSnapMode(),this.redraw()}redraw(){let t=JSON.parse(this.inner.renderGeojson());this.routeToolGj.set(t),this.map.getCanvas().style.cursor=t.cursor,this.snapMode.set(t.snap_mode),this.undoLength.set(t.undo_length)}dataUpdated(){let t=this.inner.toFinalFeature();if(t)for(let n of this.eventListenersUpdated)n(JSON.parse(t))}}const Py="MZEJTanw3WpxRvt7qDfo";let Kl=Un(null),ky=Un("dataviz"),fd=Un(!window.matchMedia("(prefers-color-scheme: dark)").matches),mg=Un(!1),Ou=Un(""),gg=Un(!0),Ay=Un(null),Dy=Un(null),Ry=Un(null),eo=Un(null),_g=Un(null),Ny=Un(new Ig.LngLat(0,0)),Oy=Un(new Ig.LngLat(0,0)),_b=Un(1),bu=Un(1),kn=Un({mode:"title"}),zy=Un("walk_cycle_only"),yb=Un(!1);function pd(){let e=Ma(Ou);e||window.alert("Autosave failed; no projectName set?!"),window.localStorage.setItem(e,Ma(eo).toSavefile())}function vb(e){let t,n;return t=new s0({props:{$$slots:{default:[wM,({dialog:i})=>({3:i}),({dialog:i})=>i?8:0]},$$scope:{ctx:e}}}),t.$on("close",e[2]),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&24&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function wM(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D;function O(){return e[1](e[3])}return{c(){t=dt("h1"),t.textContent="The Low-traffic neighbourhood (LTN) tool, v2",n=Zt(),i=dt("p"),i.innerHTML=`This is an experimental - version of the - A/B Street LTN tool - . Most parts of it do not work yet, and you should probably use the other version - of the tool instead.`,r=Zt(),a=dt("p"),a.textContent="To use this tool, you need to:",h=Zt(),u=dt("ol"),u.innerHTML=`
  • Choose your study area to analyze
  • Define one or more neighbourhood boundaries
  • Optionally, fix the basemap data on existing modal filters, turn - restrictions, one-ways, etc
  • Create one or more proposals with new modal filters, and explore their - effects
  • `,_=Zt(),w=dt("p"),w.innerHTML=`This tool is created by Dustin Carlino - and relies heavily on - OpenStreetMap - data.`,S=Zt(),E=dt("center"),M=dt("button"),M.textContent="Start!"},m(F,G){vt(F,t,G),vt(F,n,G),vt(F,i,G),vt(F,r,G),vt(F,a,G),vt(F,h,G),vt(F,u,G),vt(F,_,G),vt(F,w,G),vt(F,S,G),vt(F,E,G),ot(E,M),A||(D=Le(M,"click",O),A=!0)},p(F,G){e=F},d(F){F&&(yt(t),yt(n),yt(i),yt(r),yt(a),yt(h),yt(u),yt(_),yt(w),yt(S),yt(E)),A=!1,D()}}}function SM(e){let t,n,i=e[0]&&vb(e);return{c(){i&&i.c(),t=Ao()},m(r,a){i&&i.m(r,a),vt(r,t,a),n=!0},p(r,[a]){r[0]?i?(i.p(r,a),a&1&&ft(i,1)):(i=vb(r),i.c(),ft(i,1),i.m(t.parentNode,t)):i&&(jn(),bt(i,1,1,()=>{i=null}),qn())},i(r){n||(ft(i),n=!0)},o(r){bt(i),n=!1},d(r){r&&yt(t),i&&i.d(r)}}}function IM(e,t,n){let i;return Se(e,gg,h=>n(0,i=h)),[i,h=>Ti(h).close(),()=>Ke(gg,i=!1,i)]}class EM extends nn{constructor(t){super(),en(this,t,IM,SM,He,{})}}const CM="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAAk0lEQVRIS+3U0Q2AIAwEUNjMUXQydRJH0zZB0wjGuwJfSsKfuWfO1hg6n9g5P3wPWKTSXe6EVstUNEjoloIVghAG0OxR7swgLEAjHoBCvACM1AAQUgJ0DL0nm67WwJom7XrBlhVl4arUAHYniuE1ABTuBeBwD0CFs4D92T12fp9v9iPrnJ8LBu0KC0Ch9qEfeK3sAPceHxk8hJ17AAAAAElFTkSuQmCC",bb="/ltn/assets/logo_light-97f2d067.svg",xb="/ltn/assets/logo_dark-ed08d841.svg";function TM(e){let t,n,i,r,a,h,u,_,w;return{c(){t=dt("label"),n=de(`Basemap: - `),i=dt("select"),r=dt("option"),r.textContent="MapTiler Dataviz",a=dt("option"),a.textContent="MapTiler Streets",h=dt("option"),h.textContent="MapTiler Satellite",u=dt("option"),u.textContent="OS Open Zoomstack",r.__value="dataviz",Ho(r,r.__value),a.__value="streets",Ho(a,a.__value),h.__value="hybrid",Ho(h,h.__value),u.__value="uk-openzoomstack-light",Ho(u,u.__value),e[0]===void 0&&Hp(()=>e[1].call(i))},m(S,E){vt(S,t,E),ot(t,n),ot(t,i),ot(i,r),ot(i,a),ot(i,h),ot(i,u),Ym(i,e[0],!0),_||(w=Le(i,"change",e[1]),_=!0)},p(S,[E]){E&1&&Ym(i,S[0])},i:Pe,o:Pe,d(S){S&&yt(t),_=!1,w()}}}function LM(e,t,n){let i;Se(e,ky,a=>n(0,i=a));function r(){i=ax(this),ky.set(i)}return[i,r]}class MM extends nn{constructor(t){super(),en(this,t,LM,TM,He,{})}}let Xm=Un(!0);function PM(e){let t,n;return t=new Vu({props:{paint:{"fill-color":"black","fill-opacity":0},layout:{visibility:e[0]?"none":"visible"}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&1&&(a.layout={visibility:i[0]?"none":"visible"}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function kM(e){let t,n;return t=new $o({props:{data:e[1],$$slots:{default:[PM]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,[r]){const a={};r&5&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function AM(e,t,n){let i;return Se(e,Xm,a=>n(0,i=a)),[i,{type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]]]}}]}class DM extends nn{constructor(t){super(),en(this,t,AM,kM,He,{})}}const RM=e=>({}),wb=e=>({}),NM=e=>({}),Sb=e=>({}),OM=e=>({}),Ib=e=>({});function zM(e){let t,n,i,r,a,h;const u=e[1].top,_=sr(u,e,e[0],Ib),w=e[1].left,S=sr(w,e,e[0],Sb),E=e[1].main,M=sr(E,e,e[0],wb);return{c(){t=dt("div"),_&&_.c(),n=Zt(),i=dt("div"),S&&S.c(),r=Zt(),a=dt("div"),M&&M.c(),It(t,"class","top svelte-3nmiww"),It(i,"class","left svelte-3nmiww"),It(a,"class","main svelte-3nmiww")},m(A,D){vt(A,t,D),_&&_.m(t,null),vt(A,n,D),vt(A,i,D),S&&S.m(i,null),vt(A,r,D),vt(A,a,D),M&&M.m(a,null),h=!0},p(A,[D]){_&&_.p&&(!h||D&1)&&lr(_,u,A,A[0],h?ar(u,A[0],D,OM):ur(A[0]),Ib),S&&S.p&&(!h||D&1)&&lr(S,w,A,A[0],h?ar(w,A[0],D,NM):ur(A[0]),Sb),M&&M.p&&(!h||D&1)&&lr(M,E,A,A[0],h?ar(E,A[0],D,RM):ur(A[0]),wb)},i(A){h||(ft(_,A),ft(S,A),ft(M,A),h=!0)},o(A){bt(_,A),bt(S,A),bt(M,A),h=!1},d(A){A&&(yt(t),yt(n),yt(i),yt(r),yt(a)),_&&_.d(A),S&&S.d(A),M&&M.d(A)}}}function FM(e,t,n){let{$$slots:i={},$$scope:r}=t;return e.$$set=a=>{"$$scope"in a&&n(0,r=a.$$scope)},[r,i]}class BM extends nn{constructor(t){super(),en(this,t,FM,zM,He,{})}}function VM(e){let t,n,i,r;const a=e[1].default,h=sr(a,e,e[0],null);return{c(){t=dt("a"),h&&h.c(),It(t,"href","#")},m(u,_){vt(u,t,_),h&&h.m(t,null),n=!0,i||(r=Le(t,"click",e[2]),i=!0)},p(u,[_]){h&&h.p&&(!n||_&1)&&lr(h,a,u,u[0],n?ar(a,u[0],_,null):ur(u[0]),null)},i(u){n||(ft(h,u),n=!0)},o(u){bt(h,u),n=!1},d(u){u&&yt(t),h&&h.d(u),i=!1,r()}}}function UM(e,t,n){let{$$slots:i={},$$scope:r}=t;function a(h){ii.call(this,e,h)}return e.$$set=h=>{"$$scope"in h&&n(0,r=h.$$scope)},[r,i,a]}class hi extends nn{constructor(t){super(),en(this,t,UM,VM,He,{})}}const GM=e=>({props:e&8}),Eb=e=>({props:ZM(e[3])});function jM(e){let t;const n=e[1].default,i=sr(n,e,e[2],Eb);return{c(){i&&i.c()},m(r,a){i&&i.m(r,a),t=!0},p(r,a){i&&i.p&&(!t||a&12)&&lr(i,n,r,r[2],t?ar(n,r[2],a,GM):ur(r[2]),Eb)},i(r){t||(ft(i,r),t=!0)},o(r){bt(i,r),t=!1},d(r){i&&i.d(r)}}}function qM(e){let t,n;return t=new PL({props:{openOn:e[0],popupClass:"popup",$$slots:{default:[jM,({features:i})=>({3:i}),({features:i})=>i?8:0]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,[r]){const a={};r&1&&(a.openOn=i[0]),r&12&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function ZM(e){return e?e[0].properties??{}:(console.log("A Popup with null features should be impossible"),{})}function WM(e,t,n){let{$$slots:i={},$$scope:r}=t,{openOn:a="hover"}=t;return e.$$set=h=>{"openOn"in h&&n(0,a=h.openOn),"$$scope"in h&&n(2,r=h.$$scope)},[a,i,r]}class Gu extends nn{constructor(t){super(),en(this,t,WM,qM,He,{openOn:0})}}function HM(e,t){if(t=="dataviz")return["Road network","Path"];if(t=="streets"){let n=[];for(let i of["road","bridge","tunnel"])for(let r of["link","minor","minor_construction","motorway","motorway_construction","motorway_link","path_pedestrian","secondary_tertiary","secondary_tertiary_construction","service_track","service_track_construction","street","trunk_primary","trunk_primary_construction","trunk_primary_link"])n.push(`${i}_${r}`);return n}if(t=="hybrid")return["Path","Road","Tunnel"];if(t=="uk-openzoomstack-light")return e.getStyle().layers.filter(n=>n["source-layer"]=="roads").map(n=>n.id);throw new Error(`Unknown style ${t}`)}const{window:XM}=Vy;function $M(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D,O;return A=qS(e[8][0]),{c(){t=dt("button"),t.textContent="Stop StreetView",n=Zt(),i=dt("fieldset"),r=dt("legend"),r.textContent="Source:",a=Zt(),h=dt("label"),u=dt("input"),_=de(` - Google Street View`),w=Zt(),S=dt("label"),E=dt("input"),M=de(` - Bing Streetside`),It(t,"class","secondary"),It(u,"type","radio"),u.__value="google",Ho(u,u.__value),It(E,"type","radio"),E.__value="bing",Ho(E,E.__value),A.p(u,E)},m(F,G){vt(F,t,G),vt(F,n,G),vt(F,i,G),ot(i,r),ot(i,a),ot(i,h),ot(h,u),u.checked=u.__value===e[0],ot(h,_),ot(i,w),ot(i,S),ot(S,E),E.checked=E.__value===e[0],ot(S,M),D||(O=[Le(t,"click",e[3]),Le(u,"change",e[7]),Le(E,"change",e[9])],D=!0)},p(F,G){G&1&&(u.checked=u.__value===F[0]),G&1&&(E.checked=E.__value===F[0])},d(F){F&&(yt(t),yt(n),yt(i)),A.r(),D=!1,Ji(O)}}}function YM(e){let t,n,i;return{c(){t=dt("button"),t.textContent="StreetView",It(t,"class","secondary")},m(r,a){vt(r,t,a),n||(i=Le(t,"click",e[2]),n=!0)},p:Pe,d(r){r&&yt(t),n=!1,i()}}}function KM(e){let t,n,i;function r(u,_){return u[1]?YM:$M}let a=r(e),h=a(e);return{c(){h.c(),t=Ao()},m(u,_){h.m(u,_),vt(u,t,_),n||(i=Le(XM,"keydown",e[4]),n=!0)},p(u,[_]){a===(a=r(u))&&h?h.p(u,_):(h.d(1),h=a(u),h&&(h.c(),h.m(t.parentNode,t)))},i:Pe,o:Pe,d(u){u&&yt(t),h.d(u),n=!1,i()}}}function JM(e,t,n){let i;Se(e,Xm,O=>n(1,i=O));let{map:r}=t,{maptilerBasemap:a}=t,h="google",u=[];function _(){Ke(Xm,i=!1,i),r.on("click",S),r.getCanvas().style.cursor="crosshair";for(let O of HM(r,a))u.push([O,r.getPaintProperty(O,"line-color")]),r.setPaintProperty(O,"line-color","cyan")}function w(){Ke(Xm,i=!0,i),r.off("click",S),r.getCanvas().style.cursor="inherit";for(let[O,F]of u)r.setPaintProperty(O,"line-color",F);u=[]}fs(w);function S(O){let F=O.lngLat.lng,G=O.lngLat.lat;h=="google"?window.open(`http://maps.google.com/maps?q=&layer=c&cbll=${G},${F}&cbp=11,0,0,0,0`,"_blank"):h=="bing"&&window.open(`https://www.bing.com/maps?cp=${G}~${F}&style=x`,"_blank")}function E(O){!i&&O.key=="Escape"&&(O.stopPropagation(),w())}const M=[[]];function A(){h=this.__value,n(0,h)}function D(){h=this.__value,n(0,h)}return e.$$set=O=>{"map"in O&&n(5,r=O.map),"maptilerBasemap"in O&&n(6,a=O.maptilerBasemap)},[h,i,_,w,E,r,a,A,M,D]}class QM extends nn{constructor(t){super(),en(this,t,JM,KM,He,{map:5,maptilerBasemap:6})}}function Fr(e){return{id:e,beforeId:tP(e)}}function tP(e){let t=Ma(Kl);if(!t){console.warn(`getBeforeId(${e}) called before map is ready. Z-ordering may be incorrect.`);return}let n,i=!1;for(let r=Cb.length-1;r>=0;r--){let a=Cb[r];if(a==e){i=!0;break}t.getLayer(a)&&(n=a)}if(!i)throw new Error(`Layer ID ${e} not defined in layerZorder`);return n}const Cb=["Background","neighbourhood-boundaries","Residential","debug-borders","debug-crosses","debug-filters","cells","interior-roads","compare-route","shortcuts","shortcuts-focus","Building","route-points","route-lines","route-polygons","one-ways","Road labels","animate-shortcuts","modal-filters","boundary","neighbourhood-boundary","freehand-line","edit-polygon-fill","edit-polygon-lines","edit-polygon-vertices"];function eP(e){let t;return{c(){t=de("Back")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function nP(e){let t,n,i,r;return t=new hi({props:{$$slots:{default:[eP]},$$scope:{ctx:e}}}),t.$on("click",e[2]),{c(){Wt(t.$$.fragment)},m(a,h){jt(t,a,h),n=!0,i||(r=Le(window,"keydown",e[1]),i=!0)},p(a,[h]){const u={};h&8&&(u.$$scope={dirty:h,ctx:a}),t.$set(u)},i(a){n||(ft(t.$$.fragment,a),n=!0)},o(a){bt(t.$$.fragment,a),n=!1},d(a){qt(t,a),i=!1,r()}}}function iP(e){let t=zu();function n(r){r.key=="Escape"&&(r.stopPropagation(),t("click"))}return[t,n,()=>t("click")]}class y0 extends nn{constructor(t){super(),en(this,t,iP,nP,He,{})}}function rP(e){let t,n;const i=[Fr("one-ways"),{filter:["all",["==",["get","kind"],"interior_road"],["!=",["get","direction"],"both"]]},{layout:{"icon-image":"oneway-arrow","icon-size":1,"symbol-placement":"line","symbol-spacing":50,"icon-allow-overlap":!0,"icon-rotate":["case",["==",["get","direction"],"forwards"],0,180]}},{paint:{"icon-opacity":["case",["get","direction_edited"],1,.5]}}];let r={};for(let a=0;a({}),Tb=e=>({}),aP=e=>({}),Lb=e=>({});function lP(e){let t,n;const i=[Fr("neighbourhood-boundary"),{paint:{"fill-color":"black","fill-opacity":.3}}];let r={};for(let a=0;a{i=null}),qn())},i(r){n||(ft(i),n=!0)},o(r){bt(i),n=!1},d(r){r&&yt(t),i&&i.d(r)}}}function cP(e){let t,n,i,r,a,h,u,_,w;t=new $o({props:{data:Pb(e[3]),$$slots:{default:[lP]},$$scope:{ctx:e}}});const S=[Fr("cells"),{filter:["==",["get","kind"],"cell"]},{paint:{"fill-color":["get","color"],"fill-opacity":.3}}];let E={};for(let F=0;Fn.properties.kind=="boundary");return{type:"Feature",properties:{},geometry:{type:"Polygon",coordinates:[[[180,90],[-180,90],[-180,-90],[180,-90],[180,90]],t.geometry.coordinates[0]]}}}function fP(e,t,n){let i,r,a,{$$slots:h={},$$scope:u}=t,{gjInput:_}=t,{interactive:w=!0}=t,{onClickLine:S=(M,A)=>{}}=t;const E=M=>w&&S(M.detail.features[0],M.detail.event.lngLat);return e.$$set=M=>{"gjInput"in M&&n(4,_=M.gjInput),"interactive"in M&&n(0,w=M.interactive),"onClickLine"in M&&n(1,S=M.onClickLine),"$$scope"in M&&n(8,u=M.$$scope)},e.$$.update=()=>{e.$$.dirty&16&&n(3,i=Fy(_)),e.$$.dirty&16&&n(5,r=Math.max(..._.features.map(M=>M.properties.kind=="interior_road"?M.properties.shortcuts:0))),e.$$.dirty&32&&n(2,a=fg(["interpolate-hcl",["linear"],["get","shortcuts"],0,"white",1,"#F19A93",r,"#A32015"],"blue"))},[w,S,a,i,_,r,h,E,u]}class jg extends nn{constructor(t){super(),en(this,t,fP,hP,He,{gjInput:4,interactive:0,onClickLine:1})}}const pP=e=>({}),kb=e=>({}),dP=e=>({}),Ab=e=>({}),mP=e=>({}),Db=e=>({});function gP(e){let t,n,i,r,a,h;const u=e[4].top,_=sr(u,e,e[3],Db),w=e[4].sidebar,S=sr(w,e,e[3],Ab),E=e[4].map,M=sr(E,e,e[3],kb);return{c(){t=dt("div"),_&&_.c(),n=Zt(),i=dt("div"),S&&S.c(),r=Zt(),a=dt("div"),M&&M.c()},m(A,D){vt(A,t,D),_&&_.m(t,null),e[5](t),vt(A,n,D),vt(A,i,D),S&&S.m(i,null),e[6](i),vt(A,r,D),vt(A,a,D),M&&M.m(a,null),e[7](a),h=!0},p(A,[D]){_&&_.p&&(!h||D&8)&&lr(_,u,A,A[3],h?ar(u,A[3],D,mP):ur(A[3]),Db),S&&S.p&&(!h||D&8)&&lr(S,w,A,A[3],h?ar(w,A[3],D,dP):ur(A[3]),Ab),M&&M.p&&(!h||D&8)&&lr(M,E,A,A[3],h?ar(E,A[3],D,pP):ur(A[3]),kb)},i(A){h||(ft(_,A),ft(S,A),ft(M,A),h=!0)},o(A){bt(_,A),bt(S,A),bt(M,A),h=!1},d(A){A&&(yt(t),yt(n),yt(i),yt(r),yt(a)),_&&_.d(A),e[5](null),S&&S.d(A),e[6](null),M&&M.d(A),e[7](null)}}}function _P(e,t,n){let i,r,a;Se(e,Ay,E=>n(0,i=E)),Se(e,Dy,E=>n(1,r=E)),Se(e,Ry,E=>n(2,a=E));let{$$slots:h={},$$scope:u}=t;function _(E){zr[E?"unshift":"push"](()=>{i=E,Ay.set(i)})}function w(E){zr[E?"unshift":"push"](()=>{r=E,Dy.set(r)})}function S(E){zr[E?"unshift":"push"](()=>{a=E,Ry.set(a)})}return e.$$set=E=>{"$$scope"in E&&n(3,u=E.$$scope)},[i,r,a,u,h,_,w,S]}class ju extends nn{constructor(t){super(),en(this,t,_P,gP,He,{})}}function yP(e){let t;return{c(){t=de("Choose project")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function vP(e){let t;return{c(){t=de("Pick neighbourhood")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function bP(e){let t;return{c(){t=de("Editing")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function xP(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D;return a=new hi({props:{$$slots:{default:[yP]},$$scope:{ctx:e}}}),a.$on("click",e[4]),_=new hi({props:{$$slots:{default:[vP]},$$scope:{ctx:e}}}),_.$on("click",e[5]),E=new hi({props:{$$slots:{default:[bP]},$$scope:{ctx:e}}}),E.$on("click",e[6]),{c(){t=dt("div"),n=dt("nav"),i=dt("ul"),r=dt("li"),Wt(a.$$.fragment),h=Zt(),u=dt("li"),Wt(_.$$.fragment),w=Zt(),S=dt("li"),Wt(E.$$.fragment),M=Zt(),A=dt("li"),A.textContent="Debug mode",It(n,"aria-label","breadcrumb"),It(t,"slot","top")},m(O,F){vt(O,t,F),ot(t,n),ot(n,i),ot(i,r),jt(a,r,null),ot(i,h),ot(i,u),jt(_,u,null),ot(i,w),ot(i,S),jt(E,S,null),ot(i,M),ot(i,A),D=!0},p(O,F){const G={};F&256&&(G.$$scope={dirty:F,ctx:O}),a.$set(G);const V={};F&256&&(V.$$scope={dirty:F,ctx:O}),_.$set(V);const Z={};F&256&&(Z.$$scope={dirty:F,ctx:O}),E.$set(Z)},i(O){D||(ft(a.$$.fragment,O),ft(_.$$.fragment,O),ft(E.$$.fragment,O),D=!0)},o(O){bt(a.$$.fragment,O),bt(_.$$.fragment,O),bt(E.$$.fragment,O),D=!1},d(O){O&&yt(t),qt(a),qt(_),qt(E)}}}function wP(e){let t,n,i;return n=new y0({}),n.$on("click",e[3]),{c(){t=dt("div"),Wt(n.$$.fragment),It(t,"slot","sidebar")},m(r,a){vt(r,t,a),jt(n,t,null),i=!0},p:Pe,i(r){i||(ft(n.$$.fragment,r),i=!0)},o(r){bt(n.$$.fragment,r),i=!1},d(r){r&&yt(t),qt(n)}}}function SP(e){let t,n;return t=new Gg({props:{properties:e[7]}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&128&&(a.properties=i[7]),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function IP(e){let t,n,i;return n=new Gu({props:{openOn:"hover",$$slots:{default:[SP,({props:r})=>({7:r}),({props:r})=>r?128:0]},$$scope:{ctx:e}}}),{c(){t=dt("div"),Wt(n.$$.fragment),It(t,"slot","line-popup")},m(r,a){vt(r,t,a),jt(n,t,null),i=!0},p(r,a){const h={};a&384&&(h.$$scope={dirty:a,ctx:r}),n.$set(h)},i(r){i||(ft(n.$$.fragment,r),i=!0)},o(r){bt(n.$$.fragment,r),i=!1},d(r){r&&yt(t),qt(n)}}}function EP(e){let t,n;return t=new Gg({props:{properties:e[7]}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&128&&(a.properties=i[7]),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function CP(e){let t,n;return t=new Gu({props:{openOn:"hover",$$slots:{default:[EP,({props:i})=>({7:i}),({props:i})=>i?128:0]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&384&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function TP(e){let t,n;return t=new Gg({props:{properties:e[7]}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&128&&(a.properties=i[7]),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function LP(e){let t,n;return t=new Gu({props:{openOn:"hover",$$slots:{default:[TP,({props:i})=>({7:i}),({props:i})=>i?128:0]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&384&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function MP(e){let t,n,i,r;const a=[Fr("debug-borders"),{filter:["==",["get","kind"],"border_intersection"]},{paint:{"circle-radius":15,"circle-color":"green"}}];let h={$$slots:{default:[CP]},$$scope:{ctx:e}};for(let w=0;w({7:i}),({props:i})=>i?128:0]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&384&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function AP(e){let t,n;const i=[Fr("debug-filters"),{paint:{"circle-radius":15,"circle-color":"black"}}];let r={$$slots:{default:[kP]},$$scope:{ctx:e}};for(let a=0;an(0,i=S)),Se(e,kn,S=>n(1,r=S)),[i,r,(S,E)=>window.open(Ti(S.properties).way,"_blank"),()=>Ke(kn,r={mode:"neighbourhood"},r),()=>Ke(kn,r={mode:"title"},r),()=>Ke(kn,r={mode:"network"},r),()=>Ke(kn,r={mode:"neighbourhood"},r)]}class OP extends nn{constructor(t){super(),en(this,t,NP,RP,He,{})}}function Rb(e,t,n){const i=e.slice();return i[7]=t[n][0],i[8]=t[n][1],i[9]=t[n][2],i}function Nb(e){let t,n,i,r,a,h,u=e[8]+"",_,w,S,E,M;function A(){return e[3](e[7])}return{c(){t=dt("button"),n=dt("img"),r=Zt(),a=dt("br"),h=Zt(),_=de(u),w=Zt(),Bn(n.src,i=`/ltn//filters/${e[7]}_icon.gif`)||It(n,"src",i),It(n,"width","80"),It(n,"alt",e[8]),It(t,"class","outline"),ei(t,"width","100%"),t.disabled=S=e[0]==e[7]},m(D,O){vt(D,t,O),ot(t,n),ot(t,r),ot(t,a),ot(t,h),ot(t,_),ot(t,w),E||(M=Le(t,"click",A),E=!0)},p(D,O){e=D,O&1&&S!==(S=e[0]==e[7])&&(t.disabled=S)},d(D){D&&yt(t),E=!1,M()}}}function zP(e){let t,n,i,r,a,h,u,_,w,S,E,M,A=e[1][2]+"",D,O,F,G,V,Z,$=ps(e[2]),Q=[];for(let st=0;st<$.length;st+=1)Q[st]=Nb(Rb(e,$,st));function pt(){return e[4](e[6])}return{c(){t=dt("h3"),t.textContent="Choose a modal filter to place on streets",n=Zt(),i=dt("table"),r=dt("tr"),a=dt("td");for(let st=0;st({6:i}),({dialog:i})=>i?64:0]},$$scope:{ctx:e}}}),t.$on("close",e[5]),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,[r]){const a={};r&4163&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function BP(e,t,n){let i,r;Se(e,zy,w=>n(0,r=w));let a=[["walk_cycle_only","Walking/cycling only","A physical barrier that only allows people walking, cycling, and rolling to pass. Often planters or bollards. Larger vehicles cannot enter."],["no_entry","No entry","An alternative sign to indicate vehicles are not allowed to enter the street. Only people walking, cycling, and rolling may pass through."],["bus_gate","Bus gate","A bus gate sign and traffic cameras are installed to allow buses, pedestrians, and cyclists to pass. There is no physical barrier."],["school_street","School street","A closure during school hours only. The barrier usually allows teachers and staff to access the school."]];const h=w=>Ke(zy,r=w,r),u=w=>Ti(w).close();function _(w){ii.call(this,e,w)}return e.$$.update=()=>{e.$$.dirty&1&&n(1,i=a.find(w=>w[0]==r))},[r,i,a,h,u,_]}class VP extends nn{constructor(t){super(),en(this,t,BP,FP,He,{})}}function Ob(e){let t,n;return t=new $o({props:{data:e[0],$$slots:{default:[UP]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&1&&(a.data=i[0]),r&64&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function UP(e){let t,n;const i=[Fr("freehand-line"),{paint:{"line-width":5,"line-color":"red"}}];let r={};for(let a=0;a{i=null}),qn())},i(r){n||(ft(i),n=!0)},o(r){bt(i),n=!1},d(r){r&&yt(t),i&&i.d(r)}}}function jP(e,t,n){let{map:i}=t,r=null;const a=zu();i.on("dragstart",h),i.on("mousemove",u),i.on("mouseup",_),fs(()=>{i.dragPan.enable(),i.off("dragstart",h),i.off("mousemove",u),i.off("mouseup",_)});function h(){i.dragPan.disable(),n(0,r={type:"Feature",properties:{},geometry:{type:"LineString",coordinates:[]}})}function u(w){r&&(r.geometry.coordinates.push(w.lngLat.toArray()),n(0,r))}function _(){r&&(a("done",r),n(0,r=null))}return e.$$set=w=>{"map"in w&&n(1,i=w.map)},[r,i]}class qP extends nn{constructor(t){super(),en(this,t,jP,GP,He,{map:1})}}function ZP(e){let t;const n=e[3].default,i=sr(n,e,e[5],null);return{c(){i&&i.c()},m(r,a){i&&i.m(r,a),t=!0},p(r,a){i&&i.p&&(!t||a&32)&&lr(i,n,r,r[5],t?ar(n,r[5],a,null):ur(r[5]),null)},i(r){t||(ft(i,r),t=!0)},o(r){bt(i,r),t=!1},d(r){i&&i.d(r)}}}function WP(e){let t,n;const i=[Fr("modal-filters"),{layout:{"icon-image":["get","filter_kind"],"icon-allow-overlap":!0,"icon-size":.1}},{paint:{"icon-opacity":["case",["get","edited"],1,.5]}}];let r={$$slots:{default:[ZP]},$$scope:{ctx:e}};for(let a=0;an(1,r=w)),Se(e,bu,w=>n(2,a=w));let{$$slots:h={},$$scope:u}=t;function _(w){ii.call(this,e,w)}return e.$$set=w=>{"$$scope"in w&&n(5,u=w.$$scope)},e.$$.update=()=>{e.$$.dirty&6&&n(0,i=a>0?JSON.parse(r.renderModalFilters()):null)},[i,r,a,h,_,u]}class qg extends nn{constructor(t){super(),en(this,t,XP,HP,He,{})}}function $P(e,t,n){n===void 0&&(n={});for(var i=nT(e),r=i.coordinates,a=0,h=0;h=a&&h===r.length-1);h++)if(a>=t){var u=t-a;if(u){var _=h0(r[h],r[h-1])-180,w=Cy(r[h],u,_,n);return w}else return Co(r[h])}else a+=Gh(r[h],r[h+1],n);return Co(r[r.length-1])}function YP(e){let t,n;const i=[Fr("animate-shortcuts"),{paint:{"circle-radius":10,"circle-color":"purple","circle-stroke-color":"black","circle-stroke-width":1}}];let r={};for(let a=0;aclearInterval(u));function _(){return i.features.map(A=>1/A.properties.directness).reduce((A,D)=>A+D,0)}function w(){return i.features.length==0?[]:Array.from({length:JP},S)}function S(){let A=Math.random()*r,D=0;for(let[O,F]of i.features.entries())if(D+=1/F.properties.directness,A$P(i.features[A],D,{units:"kilometers"}))}}function M(){for(let[A,D]of a.entries())D.distance+=tk,D.distance>=i.features[D.idx].properties.length_meters/1e3&&(a[A]=S());n(0,h=E())}return e.$$set=A=>{"paths"in A&&n(1,i=A.paths)},e.$$.update=()=>{e.$$.dirty&2&&i&&(r=_(),a=w())},[h,i]}class nk extends nn{constructor(t){super(),en(this,t,ek,KP,He,{paths:1})}}function ik(e){let t;return{c(){t=de("Choose project")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function rk(e){let t;return{c(){t=de("Pick neighbourhood")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function ok(e){let t;return{c(){t=de("View shortcuts")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function sk(e){let t;return{c(){t=de("Route")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function ak(e){let t;return{c(){t=de("Change this boundary")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function lk(e){let t;return{c(){t=de("Debug")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function uk(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D,O,F,G,V,Z,$,Q,pt,st,St,ut;return a=new hi({props:{$$slots:{default:[ik]},$$scope:{ctx:e}}}),a.$on("click",e[25]),_=new hi({props:{$$slots:{default:[rk]},$$scope:{ctx:e}}}),_.$on("click",e[26]),O=new hi({props:{$$slots:{default:[ok]},$$scope:{ctx:e}}}),O.$on("click",e[27]),V=new hi({props:{$$slots:{default:[sk]},$$scope:{ctx:e}}}),V.$on("click",e[28]),Q=new hi({props:{$$slots:{default:[ak]},$$scope:{ctx:e}}}),Q.$on("click",e[29]),St=new hi({props:{$$slots:{default:[lk]},$$scope:{ctx:e}}}),St.$on("click",e[30]),{c(){t=dt("div"),n=dt("nav"),i=dt("ul"),r=dt("li"),Wt(a.$$.fragment),h=Zt(),u=dt("li"),Wt(_.$$.fragment),w=Zt(),S=dt("li"),S.textContent="Editing",E=Zt(),M=dt("nav"),A=dt("ul"),D=dt("li"),Wt(O.$$.fragment),F=Zt(),G=dt("li"),Wt(V.$$.fragment),Z=Zt(),$=dt("li"),Wt(Q.$$.fragment),pt=Zt(),st=dt("li"),Wt(St.$$.fragment),It(n,"aria-label","breadcrumb"),It(t,"slot","top"),ei(t,"display","flex"),ei(t,"justify-content","space-between")},m(kt,mt){vt(kt,t,mt),ot(t,n),ot(n,i),ot(i,r),jt(a,r,null),ot(i,h),ot(i,u),jt(_,u,null),ot(i,w),ot(i,S),ot(t,E),ot(t,M),ot(M,A),ot(A,D),jt(O,D,null),ot(A,F),ot(A,G),jt(V,G,null),ot(A,Z),ot(A,$),jt(Q,$,null),ot(A,pt),ot(A,st),jt(St,st,null),ut=!0},p(kt,mt){const Et={};mt[1]&8&&(Et.$$scope={dirty:mt,ctx:kt}),a.$set(Et);const te={};mt[1]&8&&(te.$$scope={dirty:mt,ctx:kt}),_.$set(te);const Pt={};mt[1]&8&&(Pt.$$scope={dirty:mt,ctx:kt}),O.$set(Pt);const ce={};mt[1]&8&&(ce.$$scope={dirty:mt,ctx:kt}),V.$set(ce);const Jt={};mt[1]&8&&(Jt.$$scope={dirty:mt,ctx:kt}),Q.$set(Jt);const re={};mt[1]&8&&(re.$$scope={dirty:mt,ctx:kt}),St.$set(re)},i(kt){ut||(ft(a.$$.fragment,kt),ft(_.$$.fragment,kt),ft(O.$$.fragment,kt),ft(V.$$.fragment,kt),ft(Q.$$.fragment,kt),ft(St.$$.fragment,kt),ut=!0)},o(kt){bt(a.$$.fragment,kt),bt(_.$$.fragment,kt),bt(O.$$.fragment,kt),bt(V.$$.fragment,kt),bt(Q.$$.fragment,kt),bt(St.$$.fragment,kt),ut=!1},d(kt){kt&&yt(t),qt(a),qt(_),qt(O),qt(V),qt(Q),qt(St)}}}function zb(e){let t;return{c(){t=dt("mark"),t.textContent=`Some parts of the neighbourhood aren't reachable by drivers, shown in - red`},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function ck(e){let t,n,i;return{c(){t=de("Undo ("),n=de(e[4]),i=de(")")},m(r,a){vt(r,t,a),vt(r,n,a),vt(r,i,a)},p(r,a){a[0]&16&&fi(n,r[4])},d(r){r&&(yt(t),yt(n),yt(i))}}}function hk(e){let t;return{c(){t=de("Undo")},m(n,i){vt(n,t,i)},p:Pe,d(n){n&&yt(t)}}}function fk(e){let t,n,i;return{c(){t=de("Redo ("),n=de(e[5]),i=de(")")},m(r,a){vt(r,t,a),vt(r,n,a),vt(r,i,a)},p(r,a){a[0]&32&&fi(n,r[5])},d(r){r&&(yt(t),yt(n),yt(i))}}}function pk(e){let t;return{c(){t=de("Redo")},m(n,i){vt(n,t,i)},p:Pe,d(n){n&&yt(t)}}}function Fb(e){let t,n;return t=new VP({}),t.$on("close",e[24]),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p:Pe,i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function dk(e){let t,n,i,r,a=Ti(e[6]).properties.name+"",h,u,_,w,S,E,M,A,D,O,F,G,V,Z,$,Q,pt,st,St,ut,kt,mt,Et,te,Pt,ce,Jt,re,Re,Ge,Te,ze,Fe,Xe,Dn,Sn,mn=e[8]>0&&zb();function ri(Nt,Ee){return Nt[4]==0?hk:ck}let oi=ri(e),$n=oi(e);function ie(Nt,Ee){return Nt[5]==0?pk:fk}let Je=ie(e),$e=Je(e),Ht=e[3]&&Fb(e);return{c(){t=dt("div"),n=dt("p"),i=de("Editing neighbourhood "),r=dt("u"),h=de(a),u=Zt(),_=dt("details"),_.innerHTML=`Help

    Now that you've defined a neighbourhood boundary, you can see the - possible shortcuts that vehicles are currently able to take through it. - You can add a new modal filter to try and solve this. The colored "cell" - areas show what's reachable for drivers without leaving the boundary - you've drawn.

    `,w=Zt(),mn&&mn.c(),S=Zt(),E=dt("div"),M=dt("button"),A=dt("img"),O=de(` - Add a modal filter`),G=Zt(),V=dt("button"),Z=de("Add many modal filters along line"),Q=Zt(),pt=dt("button"),st=de("Reverse directions"),ut=Zt(),kt=dt("button"),kt.textContent="Change modal filter type",mt=Zt(),Et=dt("label"),te=dt("input"),Pt=de(` - Animate shortcuts`),ce=Zt(),Jt=dt("div"),re=dt("button"),$n.c(),Ge=Zt(),Te=dt("button"),$e.c(),Fe=Zt(),Ht&&Ht.c(),Bn(A.src,D=`/ltn//filters/${e[9]}_icon.gif`)||It(A,"src",D),It(A,"width","30"),It(A,"alt","Add a modal filter"),M.disabled=F=e[0]=="filter",It(M,"data-tooltip","hotkey 1"),V.disabled=$=e[0]=="freehand-filters",It(V,"data-tooltip","hotkey 2"),pt.disabled=St=e[0]=="oneway",It(pt,"data-tooltip","hotkey 3"),ei(E,"display","flex"),ei(E,"justify-content","space-between"),It(te,"type","checkbox"),re.disabled=Re=e[4]==0,It(re,"data-tooltip","Ctrl+Z"),Te.disabled=ze=e[5]==0,It(Te,"data-tooltip","Ctrl+Y"),ei(Jt,"display","flex"),ei(Jt,"justify-content","space-between"),It(t,"slot","sidebar")},m(Nt,Ee){vt(Nt,t,Ee),ot(t,n),ot(n,i),ot(n,r),ot(r,h),ot(t,u),ot(t,_),ot(t,w),mn&&mn.m(t,null),ot(t,S),ot(t,E),ot(E,M),ot(M,A),ot(M,O),ot(E,G),ot(E,V),ot(V,Z),ot(E,Q),ot(E,pt),ot(pt,st),ot(t,ut),ot(t,kt),ot(t,mt),ot(t,Et),ot(Et,te),te.checked=e[10],ot(Et,Pt),ot(t,ce),ot(t,Jt),ot(Jt,re),$n.m(re,null),ot(Jt,Ge),ot(Jt,Te),$e.m(Te,null),ot(t,Fe),Ht&&Ht.m(t,null),Xe=!0,Dn||(Sn=[Le(M,"click",e[19]),Le(V,"click",e[20]),Le(pt,"click",e[21]),Le(kt,"click",e[22]),Le(te,"change",e[23]),Le(re,"click",e[15]),Le(Te,"click",e[16])],Dn=!0)},p(Nt,Ee){(!Xe||Ee[0]&64)&&a!==(a=Ti(Nt[6]).properties.name+"")&&fi(h,a),Nt[8]>0?mn||(mn=zb(),mn.c(),mn.m(t,S)):mn&&(mn.d(1),mn=null),(!Xe||Ee[0]&512&&!Bn(A.src,D=`/ltn//filters/${Nt[9]}_icon.gif`))&&It(A,"src",D),(!Xe||Ee[0]&1&&F!==(F=Nt[0]=="filter"))&&(M.disabled=F),(!Xe||Ee[0]&1&&$!==($=Nt[0]=="freehand-filters"))&&(V.disabled=$),(!Xe||Ee[0]&1&&St!==(St=Nt[0]=="oneway"))&&(pt.disabled=St),Ee[0]&1024&&(te.checked=Nt[10]),oi===(oi=ri(Nt))&&$n?$n.p(Nt,Ee):($n.d(1),$n=oi(Nt),$n&&($n.c(),$n.m(re,null))),(!Xe||Ee[0]&16&&Re!==(Re=Nt[4]==0))&&(re.disabled=Re),Je===(Je=ie(Nt))&&$e?$e.p(Nt,Ee):($e.d(1),$e=Je(Nt),$e&&($e.c(),$e.m(Te,null))),(!Xe||Ee[0]&32&&ze!==(ze=Nt[5]==0))&&(Te.disabled=ze),Nt[3]?Ht?(Ht.p(Nt,Ee),Ee[0]&8&&ft(Ht,1)):(Ht=Fb(Nt),Ht.c(),ft(Ht,1),Ht.m(t,null)):Ht&&(jn(),bt(Ht,1,1,()=>{Ht=null}),qn())},i(Nt){Xe||(ft(Ht),Xe=!0)},o(Nt){bt(Ht),Xe=!1},d(Nt){Nt&&yt(t),mn&&mn.d(),$n.d(),$e.d(),Ht&&Ht.d(),Dn=!1,Ji(Sn)}}}function mk(e){let t;return{c(){t=dt("p"),t.textContent="Click to change direction"},m(n,i){vt(n,t,i)},p:Pe,d(n){n&&yt(t)}}}function gk(e){let t,n,i,r;return{c(){t=dt("div"),n=dt("img"),r=de(` - Click to add modal filter`),Bn(n.src,i=`/ltn//filters/${e[9]}_icon.gif`)||It(n,"src",i),It(n,"width","20"),It(n,"alt","Add modal filter")},m(a,h){vt(a,t,h),ot(t,n),ot(t,r)},p(a,h){h[0]&512&&!Bn(n.src,i=`/ltn//filters/${a[9]}_icon.gif`)&&It(n,"src",i)},d(a){a&&yt(t)}}}function _k(e){let t,n=e[33].shortcuts+"",i,r,a=(e[33].name??"unnamed road")+"",h,u,_;function w(M,A){return M[0]=="filter"?gk:mk}let S=w(e),E=S(e);return{c(){t=dt("p"),i=de(n),r=de(" shortcuts through "),h=de(a),u=Zt(),E.c(),_=Ao()},m(M,A){vt(M,t,A),ot(t,i),ot(t,r),ot(t,h),vt(M,u,A),E.m(M,A),vt(M,_,A)},p(M,A){A[1]&4&&n!==(n=M[33].shortcuts+"")&&fi(i,n),A[1]&4&&a!==(a=(M[33].name??"unnamed road")+"")&&fi(h,a),S===(S=w(M))&&E?E.p(M,A):(E.d(1),E=S(M),E&&(E.c(),E.m(_.parentNode,_)))},d(M){M&&(yt(t),yt(u),yt(_)),E.d(M)}}}function yk(e){let t,n,i;return n=new Gu({props:{openOn:"hover",$$slots:{default:[_k,({props:r})=>({33:r}),({props:r})=>[0,r?4:0]]},$$scope:{ctx:e}}}),{c(){t=dt("div"),Wt(n.$$.fragment),It(t,"slot","line-popup")},m(r,a){vt(r,t,a),jt(n,t,null),i=!0},p(r,a){const h={};a[0]&513|a[1]&12&&(h.$$scope={dirty:a,ctx:r}),n.$set(h)},i(r){i||(ft(n.$$.fragment,r),i=!0)},o(r){bt(n.$$.fragment,r),i=!1},d(r){r&&yt(t),qt(n)}}}function Bb(e){let t,n;return t=new nk({props:{paths:e[7]}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r[0]&128&&(a.paths=i[7]),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function vk(e){let t;return{c(){t=de("Click to delete")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function bk(e){let t,n;return t=new Gu({props:{openOn:"hover",$$slots:{default:[vk]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r[1]&8&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function Vb(e){let t,n;return t=new qP({props:{map:Ti(e[2])}}),t.$on("done",e[17]),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r[0]&4&&(a.map=Ti(i[2])),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function xk(e){let t,n,i,r,a,h,u;n=new jg({props:{gjInput:e[1],interactive:e[0]=="filter"||e[0]=="oneway",onClickLine:e[12],$$slots:{"line-popup":[yk]},$$scope:{ctx:e}}});let _=e[10]&&Bb(e);a=new qg({props:{$$slots:{default:[bk]},$$scope:{ctx:e}}}),a.$on("click",e[13]);let w=e[0]=="freehand-filters"&&Vb(e);return{c(){t=dt("div"),Wt(n.$$.fragment),i=Zt(),_&&_.c(),r=Zt(),Wt(a.$$.fragment),h=Zt(),w&&w.c(),It(t,"slot","map")},m(S,E){vt(S,t,E),jt(n,t,null),ot(t,i),_&&_.m(t,null),ot(t,r),jt(a,t,null),ot(t,h),w&&w.m(t,null),u=!0},p(S,E){const M={};E[0]&2&&(M.gjInput=S[1]),E[0]&1&&(M.interactive=S[0]=="filter"||S[0]=="oneway"),E[0]&513|E[1]&8&&(M.$$scope={dirty:E,ctx:S}),n.$set(M),S[10]?_?(_.p(S,E),E[0]&1024&&ft(_,1)):(_=Bb(S),_.c(),ft(_,1),_.m(t,r)):_&&(jn(),bt(_,1,1,()=>{_=null}),qn());const A={};E[1]&8&&(A.$$scope={dirty:E,ctx:S}),a.$set(A),S[0]=="freehand-filters"?w?(w.p(S,E),E[0]&1&&ft(w,1)):(w=Vb(S),w.c(),ft(w,1),w.m(t,null)):w&&(jn(),bt(w,1,1,()=>{w=null}),qn())},i(S){u||(ft(n.$$.fragment,S),ft(_),ft(a.$$.fragment,S),ft(w),u=!0)},o(S){bt(n.$$.fragment,S),bt(_),bt(a.$$.fragment,S),bt(w),u=!1},d(S){S&&yt(t),qt(n),_&&_.d(),qt(a),w&&w.d()}}}function wk(e){let t,n,i,r;return t=new ju({props:{$$slots:{map:[xk],sidebar:[dk],top:[uk]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(a,h){jt(t,a,h),n=!0,i||(r=Le(window,"keydown",e[14]),i=!0)},p(a,h){const u={};h[0]&4095|h[1]&8&&(u.$$scope={dirty:h,ctx:a}),t.$set(u)},i(a){n||(ft(t.$$.fragment,a),n=!0)},o(a){bt(t.$$.fragment,a),n=!1},d(a){qt(t,a),i=!1,r()}}}function Sk(e,t,n){let i,r,a,h,u,_,w;Se(e,bu,Te=>n(18,r=Te)),Se(e,zy,Te=>n(9,a=Te)),Se(e,eo,Te=>n(31,h=Te)),Se(e,Kl,Te=>n(2,u=Te)),Se(e,yb,Te=>n(10,_=Te)),Se(e,kn,Te=>n(11,w=Te));let S="filter",E=!1,M=0,A=0,D,O,F=JSON.parse(h.getAllShortcuts());fs(()=>{u.doubleClickZoom.enable()});function G(Te){n(1,O=JSON.parse(h.renderNeighbourhood())),n(6,D=O.features.find(ze=>ze.properties.kind=="boundary")),n(4,M=O.undo_length),n(5,A=O.redo_length),n(7,F=JSON.parse(h.getAllShortcuts())),pd()}function V(Te,ze){S=="filter"?(h.addModalFilter(ze,a),Ke(bu,r++,r)):S=="oneway"&&(h.toggleDirection(Te.properties.road),Ke(bu,r++,r))}function Z(Te){let ze=Te.detail.features[0];h.deleteModalFilter(ze.properties.road),Ke(bu,r++,r)}function $(Te){Te.target.tagName!="INPUT"&&(Te.ctrlKey&&Te.key=="z"&&Q(),Te.ctrlKey&&Te.key=="y"&&pt(),Te.key=="1"&&n(0,S="filter"),Te.key=="2"&&n(0,S="freehand-filters"),Te.key=="3"&&n(0,S="oneway"))}function Q(){h.undo(),Ke(bu,r++,r)}function pt(){h.redo(),Ke(bu,r++,r)}function st(Te){let ze=Te.detail;ze&&(h.addManyModalFilters(ze,a),Ke(bu,r++,r)),n(0,S="filter")}const St=()=>n(0,S="filter"),ut=()=>n(0,S="freehand-filters"),kt=()=>n(0,S="oneway"),mt=()=>n(3,E=!0);function Et(){_=this.checked,yb.set(_)}const te=()=>n(3,E=!1),Pt=()=>Ke(kn,w={mode:"title"},w),ce=()=>Ke(kn,w={mode:"network"},w),Jt=()=>Ke(kn,w={mode:"view-shortcuts"},w),re=()=>Ke(kn,w={mode:"route",prevMode:"neighbourhood"},w),Re=()=>Ke(kn,w={mode:"set-boundary",name:Ti(D).properties.name,existing:D},w),Ge=()=>Ke(kn,w={mode:"debug"},w);return e.$$.update=()=>{e.$$.dirty[0]&5&&(S=="oneway"?u.doubleClickZoom.disable():u.doubleClickZoom.enable()),e.$$.dirty[0]&262144&&G(),e.$$.dirty[0]&2&&n(8,i=O.features.filter(Te=>Te.properties.kind=="cell"&&Te.properties.cell_color=="disconnected").length)},[S,O,u,E,M,A,D,F,i,a,_,w,V,Z,$,Q,pt,st,r,St,ut,kt,mt,Et,te,Pt,ce,Jt,re,Re,Ge]}class Ik extends nn{constructor(t){super(),en(this,t,Sk,wk,He,{},null,[-1,-1])}}const yg="/ltn/assets/delete_light-ec75e756.svg",vg="/ltn/assets/delete_dark-953cd893.svg",bg="/ltn/assets/edit_light-f3f51206.svg",xg="/ltn/assets/edit_dark-97c94d36.svg";function Ub(e,t,n){const i=e.slice();return i[19]=t[n],i}function Ek(e){let t;return{c(){t=de("Choose project")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function Ck(e){let t;return{c(){t=de("Route")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function Tk(e){let t,n,i,r,a,h,u,_,w,S,E,M,A;return a=new hi({props:{$$slots:{default:[Ek]},$$scope:{ctx:e}}}),a.$on("click",e[16]),M=new hi({props:{$$slots:{default:[Ck]},$$scope:{ctx:e}}}),M.$on("click",e[17]),{c(){t=dt("div"),n=dt("nav"),i=dt("ul"),r=dt("li"),Wt(a.$$.fragment),h=Zt(),u=dt("li"),u.textContent="Pick neighbourhood",_=Zt(),w=dt("nav"),S=dt("ul"),E=dt("li"),Wt(M.$$.fragment),It(n,"aria-label","breadcrumb"),It(t,"slot","top"),ei(t,"display","flex"),ei(t,"justify-content","space-between")},m(D,O){vt(D,t,O),ot(t,n),ot(n,i),ot(i,r),jt(a,r,null),ot(i,h),ot(i,u),ot(t,_),ot(t,w),ot(w,S),ot(S,E),jt(M,E,null),A=!0},p(D,O){const F={};O&4194304&&(F.$$scope={dirty:O,ctx:D}),a.$set(F);const G={};O&4194304&&(G.$$scope={dirty:O,ctx:D}),M.$set(G)},i(D){A||(ft(a.$$.fragment,D),ft(M.$$.fragment,D),A=!0)},o(D){bt(a.$$.fragment,D),bt(M.$$.fragment,D),A=!1},d(D){D&&yt(t),qt(a),qt(M)}}}function Lk(e){let t;return{c(){t=de("Draw a new boundary")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function Mk(e){let t=e[19]+"",n;return{c(){n=de(t)},m(i,r){vt(i,n,r)},p(i,r){r&2&&t!==(t=i[19]+"")&&fi(n,t)},d(i){i&&yt(n)}}}function Gb(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D,O;function F(){return e[13](e[19])}i=new hi({props:{$$slots:{default:[Mk]},$$scope:{ctx:e}}}),i.$on("click",F);function G(){return e[14](e[19])}function V(){return e[15](e[19])}return{c(){t=dt("li"),n=dt("span"),Wt(i.$$.fragment),r=Zt(),a=dt("button"),h=dt("img"),_=Zt(),w=dt("button"),S=dt("img"),M=Zt(),Bn(h.src,u=e[4]?bg:xg)||It(h,"src",u),It(h,"alt","Rename neighbourhood"),It(a,"class","secondary"),Bn(S.src,E=e[4]?yg:vg)||It(S,"src",E),It(S,"alt","Delete neighbourhood"),It(w,"class","secondary"),ei(n,"display","flex"),ei(n,"justify-content","space-between")},m(Z,$){vt(Z,t,$),ot(t,n),jt(i,n,null),ot(n,r),ot(n,a),ot(a,h),ot(n,_),ot(n,w),ot(w,S),ot(t,M),A=!0,D||(O=[Le(a,"click",G),Le(w,"click",V)],D=!0)},p(Z,$){e=Z;const Q={};$&4194306&&(Q.$$scope={dirty:$,ctx:e}),i.$set(Q),(!A||$&16&&!Bn(h.src,u=e[4]?bg:xg))&&It(h,"src",u),(!A||$&16&&!Bn(S.src,E=e[4]?yg:vg))&&It(S,"src",E)},i(Z){A||(ft(i.$$.fragment,Z),A=!0)},o(Z){bt(i.$$.fragment,Z),A=!1},d(Z){Z&&yt(t),qt(i),D=!1,Ji(O)}}}function Pk(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D,O,F,G,V,Z;r=new hi({props:{$$slots:{default:[Lk]},$$scope:{ctx:e}}}),r.$on("click",e[8]);let $=ps(e[1]),Q=[];for(let st=0;st<$.length;st+=1)Q[st]=Gb(Ub(e,$,st));const pt=st=>bt(Q[st],1,1,()=>{Q[st]=null});return{c(){t=dt("div"),n=dt("details"),n.innerHTML=`Help

    Inside the neighbourhood you define, the goal is to eliminate (or - deliberately permit) through-traffic. An appropriate neighbourhood - boundary depends on many factors. The simplest approach is to find the - area bounded on all sides by "main" roads, which are designed for higher - traffic volumes. There are many other considerations, though -- maybe - severances like rivers or rail should be part of a boundary. Bridges and - tunnels near a boundary may be confusing as well. And note that your - boundary may not match the conventional definition of "neighbourhood."

    `,i=Zt(),Wt(r.$$.fragment),a=Zt(),h=dt("ul");for(let st=0;st({18:i}),({props:i})=>i?262144:0]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&4456448&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function Dk(e){let t,n;const i=[Fr("neighbourhood-boundaries"),{filter:["==",["get","kind"],"boundary"]},{paint:{"fill-color":"red","fill-opacity":fg(.3,.5)}},{eventsIfTopMost:!0},{manageHoverState:!0},{hoverCursor:"pointer"}];let r={$$slots:{default:[Ak]},$$scope:{ctx:e}};for(let a=0;an(11,a=Q)),Se(e,Ou,Q=>n(2,h=Q)),Se(e,kn,Q=>n(3,u=Q)),Se(e,fd,Q=>n(4,_=Q));function w(Q){a.setCurrentNeighbourhood(Q),Ke(kn,u={mode:"neighbourhood"},u)}function S(Q){window.confirm(`Really delete neighbourhood ${Q}? You can't undo this.`)&&(a.deleteNeighbourhoodBoundary(Q),pd(),n(0,i=JSON.parse(a.toSavefile())))}function E(Q){let pt=window.prompt(`Rename neighbourhood ${Q} to what?`,Q);pt&&(a.renameNeighbourhoodBoundary(Q,pt),pd(),n(0,i=JSON.parse(a.toSavefile())))}function M(){let Q=window.prompt("What do you want to name the neighbourhood?");Q&&Ke(kn,u={mode:"set-boundary",name:Q,existing:null},u)}function A(){gb(h+".geojson",a.toSavefile())}function D(){gb("debug_route_snapper.geojson",a.toRouteSnapperGj())}const O=Q=>w(Ti(Q.detail.features[0].properties).name),F=Q=>w(Q),G=Q=>E(Q),V=Q=>S(Q),Z=()=>Ke(kn,u={mode:"title"},u),$=()=>Ke(kn,u={mode:"route",prevMode:"network"},u);return e.$$.update=()=>{e.$$.dirty&2048&&n(0,i=JSON.parse(a.toSavefile())),e.$$.dirty&1&&n(1,r=i.features.filter(Q=>Q.properties.kind=="boundary").map(Q=>Q.properties.name))},[i,r,h,u,_,w,S,E,M,A,D,a,O,F,G,V,Z,$]}class zk extends nn{constructor(t){super(),en(this,t,Ok,Nk,He,{})}}function Fk(e){let t;return{c(){t=de("Choose project")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function Bk(e){let t;return{c(){t=de("Pick neighbourhood")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function jb(e){let t,n,i;return n=new hi({props:{$$slots:{default:[Vk]},$$scope:{ctx:e}}}),n.$on("click",e[13]),{c(){t=dt("li"),Wt(n.$$.fragment)},m(r,a){vt(r,t,a),jt(n,t,null),i=!0},p(r,a){const h={};a&16384&&(h.$$scope={dirty:a,ctx:r}),n.$set(h)},i(r){i||(ft(n.$$.fragment,r),i=!0)},o(r){bt(n.$$.fragment,r),i=!1},d(r){r&&yt(t),qt(n)}}}function Vk(e){let t;return{c(){t=de("Editing")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function Uk(e){let t,n,i,r,a,h,u,_,w,S,E,M;a=new hi({props:{$$slots:{default:[Fk]},$$scope:{ctx:e}}}),a.$on("click",e[11]),_=new hi({props:{$$slots:{default:[Bk]},$$scope:{ctx:e}}}),_.$on("click",e[12]);let A=e[0]=="neighbourhood"&&jb(e);return{c(){t=dt("div"),n=dt("nav"),i=dt("ul"),r=dt("li"),Wt(a.$$.fragment),h=Zt(),u=dt("li"),Wt(_.$$.fragment),w=Zt(),A&&A.c(),S=Zt(),E=dt("li"),E.textContent="Routing",It(n,"aria-label","breadcrumb"),It(t,"slot","top")},m(D,O){vt(D,t,O),ot(t,n),ot(n,i),ot(i,r),jt(a,r,null),ot(i,h),ot(i,u),jt(_,u,null),ot(i,w),A&&A.m(i,null),ot(i,S),ot(i,E),M=!0},p(D,O){const F={};O&16384&&(F.$$scope={dirty:O,ctx:D}),a.$set(F);const G={};O&16384&&(G.$$scope={dirty:O,ctx:D}),_.$set(G),D[0]=="neighbourhood"?A?(A.p(D,O),O&1&&ft(A,1)):(A=jb(D),A.c(),ft(A,1),A.m(i,S)):A&&(jn(),bt(A,1,1,()=>{A=null}),qn())},i(D){M||(ft(a.$$.fragment,D),ft(_.$$.fragment,D),ft(A),M=!0)},o(D){bt(a.$$.fragment,D),bt(_.$$.fragment,D),bt(A),M=!1},d(D){D&&yt(t),qt(a),qt(_),A&&A.d()}}}function Gk(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D,O,F,G;return n=new y0({}),n.$on("click",e[7]),{c(){t=dt("div"),Wt(n.$$.fragment),i=Zt(),r=dt("p"),r.textContent="Drag markers for a route",a=Zt(),h=dt("p"),h.innerHTML=`Route before - , - route after`,u=Zt(),_=dt("label"),w=de("Slow-down factor for main roads: "),S=de(e[1]),E=Zt(),M=dt("input"),A=Zt(),D=dt("i"),D.textContent=`Increase to see how drivers may detour in heavy traffic. 1 means - free-flow.`,It(M,"type","range"),It(M,"min","1.0"),It(M,"max","5.0"),It(M,"step","0.1"),It(t,"slot","sidebar")},m(V,Z){vt(V,t,Z),jt(n,t,null),ot(t,i),ot(t,r),ot(t,a),ot(t,h),ot(t,u),ot(t,_),ot(_,w),ot(_,S),ot(_,E),ot(_,M),Ho(M,e[1]),ot(t,A),ot(t,D),O=!0,F||(G=[Le(M,"change",e[10]),Le(M,"input",e[10])],F=!0)},p(V,Z){(!O||Z&2)&&fi(S,V[1]),Z&2&&Ho(M,V[1])},i(V){O||(ft(n.$$.fragment,V),O=!0)},o(V){bt(n.$$.fragment,V),O=!1},d(V){V&&yt(t),qt(n),F=!1,Ji(G)}}}function qb(e){let t,n;return t=new jg({props:{gjInput:JSON.parse(Ti(e[4]).renderNeighbourhood()),interactive:!1}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&16&&(a.gjInput=JSON.parse(Ti(i[4]).renderNeighbourhood())),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function jk(e){let t,n;const i=[Fr("compare-route"),{paint:{"line-width":10,"line-color":Ap(["get","kind"],{before:"red",after:"blue"},"red")}}];let r={};for(let a=0;avc(u,"lngLat",D));function F(V){e[9](V)}let G={draggable:!0,$$slots:{default:[Zk]},$$scope:{ctx:e}};return e[2]!==void 0&&(G.lngLat=e[2]),S=new cb({props:G}),zr.push(()=>vc(S,"lngLat",F)),{c(){t=dt("div"),A&&A.c(),n=Zt(),Wt(i.$$.fragment),r=Zt(),Wt(a.$$.fragment),h=Zt(),Wt(u.$$.fragment),w=Zt(),Wt(S.$$.fragment),It(t,"slot","map")},m(V,Z){vt(V,t,Z),A&&A.m(t,null),ot(t,n),jt(i,t,null),ot(t,r),jt(a,t,null),ot(t,h),jt(u,t,null),ot(t,w),jt(S,t,null),M=!0},p(V,Z){V[0]=="neighbourhood"?A?(A.p(V,Z),Z&1&&ft(A,1)):(A=qb(V),A.c(),ft(A,1),A.m(t,n)):A&&(jn(),bt(A,1,1,()=>{A=null}),qn());const $={};Z&32&&($.data=V[5]),Z&16384&&($.$$scope={dirty:Z,ctx:V}),a.$set($);const Q={};Z&16384&&(Q.$$scope={dirty:Z,ctx:V}),!_&&Z&8&&(_=!0,Q.lngLat=V[3],yc(()=>_=!1)),u.$set(Q);const pt={};Z&16384&&(pt.$$scope={dirty:Z,ctx:V}),!E&&Z&4&&(E=!0,pt.lngLat=V[2],yc(()=>E=!1)),S.$set(pt)},i(V){M||(ft(A),ft(i.$$.fragment,V),ft(a.$$.fragment,V),ft(u.$$.fragment,V),ft(S.$$.fragment,V),M=!0)},o(V){bt(A),bt(i.$$.fragment,V),bt(a.$$.fragment,V),bt(u.$$.fragment,V),bt(S.$$.fragment,V),M=!1},d(V){V&&yt(t),A&&A.d(),qt(i),qt(a),qt(u),qt(S)}}}function Hk(e){let t,n;return t=new ju({props:{$$slots:{map:[Wk],sidebar:[Gk],top:[Uk]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,[r]){const a={};r&16511&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function Xk(e,t,n){let i,r,a,h,u,_;Se(e,kn,G=>n(6,r=G)),Se(e,_b,G=>n(1,a=G)),Se(e,Oy,G=>n(2,h=G)),Se(e,Ny,G=>n(3,u=G)),Se(e,eo,G=>n(4,_=G));let{prevMode:w}=t;function S(){Ke(kn,r={mode:w},r)}function E(G){u=G,Ny.set(u)}function M(G){h=G,Oy.set(h)}function A(){a=ZS(this.value),_b.set(a)}const D=()=>Ke(kn,r={mode:"title"},r),O=()=>Ke(kn,r={mode:"network"},r),F=()=>Ke(kn,r={mode:"neighbourhood"},r);return e.$$set=G=>{"prevMode"in G&&n(0,w=G.prevMode)},e.$$.update=()=>{e.$$.dirty&30&&n(5,i=JSON.parse(_.compareRoute(u.lng,u.lat,h.lng,h.lat,a)))},[w,a,h,u,_,i,r,S,E,M,A,D,O,F]}class $k extends nn{constructor(t){super(),en(this,t,Xk,Hk,He,{prevMode:0})}}const Zb="/ltn/assets/settings_light-342fb430.svg",Wb="/ltn/assets/settings_dark-088e95f1.svg";function Hb(e){let t,n;return t=new s0({props:{$$slots:{default:[Yk]},$$scope:{ctx:e}}}),t.$on("close",e[5]),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&67&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function Yk(e){let t,n,i,r,a,h,u,_,w,S,E,M,A;return i=new MM({}),{c(){t=dt("h1"),t.textContent="Settings",n=Zt(),Wt(i.$$.fragment),r=Zt(),a=dt("label"),h=dt("input"),u=de(` - Light mode`),_=Zt(),w=dt("center"),S=dt("button"),S.textContent="Confirm",It(h,"type","checkbox"),It(h,"role","switch")},m(D,O){vt(D,t,O),vt(D,n,O),jt(i,D,O),vt(D,r,O),vt(D,a,O),ot(a,h),h.checked=e[0],ot(a,u),vt(D,_,O),vt(D,w,O),ot(w,S),E=!0,M||(A=[Le(h,"change",e[3]),Le(S,"click",e[4])],M=!0)},p(D,O){O&1&&(h.checked=D[0])},i(D){E||(ft(i.$$.fragment,D),E=!0)},o(D){bt(i.$$.fragment,D),E=!1},d(D){D&&(yt(t),yt(n),yt(r),yt(a),yt(_),yt(w)),qt(i,D),M=!1,Ji(A)}}}function Kk(e){let t,n,i,r,a,h,u,_,w=e[1]&&Hb(e);return{c(){t=dt("button"),n=dt("img"),r=Zt(),w&&w.c(),a=Ao(),Bn(n.src,i=e[0]?Zb:Wb)||It(n,"src",i),It(n,"alt","Settings"),It(t,"class","outline")},m(S,E){vt(S,t,E),ot(t,n),vt(S,r,E),w&&w.m(S,E),vt(S,a,E),h=!0,u||(_=Le(t,"click",e[2]),u=!0)},p(S,[E]){(!h||E&1&&!Bn(n.src,i=S[0]?Zb:Wb))&&It(n,"src",i),S[1]?w?(w.p(S,E),E&2&&ft(w,1)):(w=Hb(S),w.c(),ft(w,1),w.m(a.parentNode,a)):w&&(jn(),bt(w,1,1,()=>{w=null}),qn())},i(S){h||(ft(w),h=!0)},o(S){bt(w),h=!1},d(S){S&&(yt(t),yt(r),yt(a)),w&&w.d(S),u=!1,_()}}}function Jk(e,t,n){let i;Se(e,fd,w=>n(0,i=w));let r=!1;const a=()=>n(1,r=!0);function h(){i=this.checked,fd.set(i)}const u=()=>n(1,r=!1),_=()=>n(1,r=!1);return e.$$.update=()=>{e.$$.dirty&1&&document.documentElement.setAttribute("data-theme",i?"light":"dark")},[i,r,a,h,u,_]}class Qk extends nn{constructor(t){super(),en(this,t,Jk,Kk,He,{})}}const Ww=Un({type:"FeatureCollection",features:[]}),tA=Un(!0),Hw=Un(0);function eA(e){let t,n,i,r,a,h;const u=[Fr("route-points"),{filter:iM},{paint:{"circle-color":Ap(["get","type"],{"snapped-waypoint":"red","free-waypoint":"blue"},"black"),"circle-opacity":["case",["has","hovered"],.5,1],"circle-radius":Ap(["get","type"],{node:Vm/2},Vm)}}];let _={};for(let A=0;An(0,i=r)),[i]}class rA extends nn{constructor(t){super(),en(this,t,iA,nA,He,{})}}function oA(e){let t,n,i;return{c(){t=de("Undo ("),n=de(e[1]),i=de(")")},m(r,a){vt(r,t,a),vt(r,n,a),vt(r,i,a)},p(r,a){a&2&&fi(n,r[1])},d(r){r&&(yt(t),yt(n),yt(i))}}}function sA(e){let t;return{c(){t=de("Undo")},m(n,i){vt(n,t,i)},p:Pe,d(n){n&&yt(t)}}}function aA(e){let t,n,i,r,a,h;function u(S,E){return S[1]==0?sA:oA}let _=u(e),w=_(e);return{c(){t=dt("button"),w.c(),i=Zt(),r=dt("ul"),r.innerHTML=`
  • Click - the map to add points
  • Click and drag - any point to move it
  • Click - a waypoint to delete it
  • Press Control+Z - to undo your last change
  • Press Enter - or - double click - to finish
  • Press Escape - to cancel
  • `,t.disabled=n=e[1]==0,It(t,"data-tooltip","Ctrl+Z")},m(S,E){vt(S,t,E),w.m(t,null),vt(S,i,E),vt(S,r,E),a||(h=Le(t,"click",e[2]),a=!0)},p(S,[E]){_===(_=u(S))&&w?w.p(S,E):(w.d(1),w=_(S),w&&(w.c(),w.m(t,null))),E&2&&n!==(n=S[1]==0)&&(t.disabled=n)},i:Pe,o:Pe,d(S){S&&(yt(t),yt(i),yt(r)),w.d(),a=!1,h()}}}function lA(e,t,n){let i;Se(e,Hw,h=>n(1,i=h));let{route_tool:r}=t;const a=()=>r.undo();return e.$$set=h=>{"route_tool"in h&&n(0,r=h.route_tool)},[r,i,a]}class uA extends nn{constructor(t){super(),en(this,t,lA,aA,He,{route_tool:0})}}function cA(e){let t;return{c(){t=de("Choose project")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function hA(e){let t;return{c(){t=de("Pick neighbourhood")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function fA(e){let t;return{c(){t=dt("li"),t.textContent="Creating new neighbourhood boundary"},m(n,i){vt(n,t,i)},p:Pe,i:Pe,o:Pe,d(n){n&&yt(t)}}}function pA(e){let t,n,i,r,a;return n=new hi({props:{$$slots:{default:[dA]},$$scope:{ctx:e}}}),n.$on("click",e[8]),{c(){t=dt("li"),Wt(n.$$.fragment),i=Zt(),r=dt("li"),r.textContent="Changing neighbourhood boundary"},m(h,u){vt(h,t,u),jt(n,t,null),vt(h,i,u),vt(h,r,u),a=!0},p(h,u){const _={};u&1024&&(_.$$scope={dirty:u,ctx:h}),n.$set(_)},i(h){a||(ft(n.$$.fragment,h),a=!0)},o(h){bt(n.$$.fragment,h),a=!1},d(h){h&&(yt(t),yt(i),yt(r)),qt(n)}}}function dA(e){let t;return{c(){t=de("Editing")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function mA(e){let t,n,i,r,a,h,u,_,w,S,E,M;a=new hi({props:{$$slots:{default:[cA]},$$scope:{ctx:e}}}),a.$on("click",e[6]),_=new hi({props:{$$slots:{default:[hA]},$$scope:{ctx:e}}}),_.$on("click",e[7]);const A=[pA,fA],D=[];function O(F,G){return F[1]?0:1}return S=O(e),E=D[S]=A[S](e),{c(){t=dt("div"),n=dt("nav"),i=dt("ul"),r=dt("li"),Wt(a.$$.fragment),h=Zt(),u=dt("li"),Wt(_.$$.fragment),w=Zt(),E.c(),It(n,"aria-label","breadcrumb"),It(t,"slot","top")},m(F,G){vt(F,t,G),ot(t,n),ot(n,i),ot(i,r),jt(a,r,null),ot(i,h),ot(i,u),jt(_,u,null),ot(i,w),D[S].m(i,null),M=!0},p(F,G){const V={};G&1024&&(V.$$scope={dirty:G,ctx:F}),a.$set(V);const Z={};G&1024&&(Z.$$scope={dirty:G,ctx:F}),_.$set(Z);let $=S;S=O(F),S===$?D[S].p(F,G):(jn(),bt(D[$],1,1,()=>{D[$]=null}),qn(),E=D[S],E?E.p(F,G):(E=D[S]=A[S](F),E.c()),ft(E,1),E.m(i,null))},i(F){M||(ft(a.$$.fragment,F),ft(_.$$.fragment,F),ft(E),M=!0)},o(F){bt(a.$$.fragment,F),bt(_.$$.fragment,F),bt(E),M=!1},d(F){F&&yt(t),qt(a),qt(_),D[S].d()}}}function gA(e){let t;return{c(){t=de("Finish")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function _A(e){let t;return{c(){t=de("Cancel")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function yA(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D;return u=new hi({props:{$$slots:{default:[gA]},$$scope:{ctx:e}}}),u.$on("click",e[5]),w=new hi({props:{$$slots:{default:[_A]},$$scope:{ctx:e}}}),w.$on("click",e[4]),A=new uA({props:{route_tool:Ti(e[2])}}),{c(){t=dt("div"),n=dt("h1"),i=de("Draw your neighbourhood boundary for "),r=de(e[0]),a=Zt(),h=dt("div"),Wt(u.$$.fragment),_=Zt(),Wt(w.$$.fragment),S=Zt(),E=dt("p"),E.textContent="TODO: maybe move the instructions from the previous screen to here...",M=Zt(),Wt(A.$$.fragment),ei(h,"display","flex"),ei(h,"justify-content","space-between"),It(t,"slot","sidebar")},m(O,F){vt(O,t,F),ot(t,n),ot(n,i),ot(n,r),ot(t,a),ot(t,h),jt(u,h,null),ot(h,_),jt(w,h,null),ot(t,S),ot(t,E),ot(t,M),jt(A,t,null),D=!0},p(O,F){(!D||F&1)&&fi(r,O[0]);const G={};F&1024&&(G.$$scope={dirty:F,ctx:O}),u.$set(G);const V={};F&1024&&(V.$$scope={dirty:F,ctx:O}),w.$set(V);const Z={};F&4&&(Z.route_tool=Ti(O[2])),A.$set(Z)},i(O){D||(ft(u.$$.fragment,O),ft(w.$$.fragment,O),ft(A.$$.fragment,O),D=!0)},o(O){bt(u.$$.fragment,O),bt(w.$$.fragment,O),bt(A.$$.fragment,O),D=!1},d(O){O&&yt(t),qt(u),qt(w),qt(A)}}}function vA(e){let t,n,i;return n=new rA({}),{c(){t=dt("div"),Wt(n.$$.fragment),It(t,"slot","map")},m(r,a){vt(r,t,a),jt(n,t,null),i=!0},p:Pe,i(r){i||(ft(n.$$.fragment,r),i=!0)},o(r){bt(n.$$.fragment,r),i=!1},d(r){r&&yt(t),qt(n)}}}function bA(e){let t,n;return t=new ju({props:{$$slots:{map:[vA],sidebar:[yA],top:[mA]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,[r]){const a={};r&1039&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function xA(e,t,n){let i,r,a;Se(e,_g,A=>n(2,i=A)),Se(e,kn,A=>n(3,r=A)),Se(e,eo,A=>n(9,a=A));let{name:h}=t,{existing:u}=t;u?i.editExistingArea(u):i.startArea();function _(){u?Ke(kn,r={mode:"neighbourhood"},r):Ke(kn,r={mode:"network"},r),i.clearEventListeners()}i.addEventListenerSuccess(A=>{try{a.setNeighbourhoodBoundary(h,A),pd(),a.setCurrentNeighbourhood(h),Ke(kn,r={mode:"neighbourhood"},r),i.clearEventListeners()}catch{window.alert("Known georust bug hit, sorry. You may need to just refresh the page now."),_()}}),i.addEventListenerFailure(_);const w=()=>Ti(i).finish(),S=()=>Ke(kn,r={mode:"title"},r),E=()=>Ke(kn,r={mode:"network"},r),M=()=>Ke(kn,r={mode:"neighbourhood"},r);return e.$$set=A=>{"name"in A&&n(0,h=A.name),"existing"in A&&n(1,u=A.existing)},[h,u,i,r,_,w,S,E,M]}class wA extends nn{constructor(t){super(),en(this,t,xA,bA,He,{name:0,existing:1})}}async function By(e){Ou.set(e);try{let t=JSON.parse(window.localStorage.getItem(e));console.time("get OSM input");let n=await SA(t);console.timeEnd("get OSM input"),console.time("load"),eo.set(new Gw(new Uint8Array(n),t.study_area_name||void 0)),Ma(eo).loadSavefile(t),console.timeEnd("load"),Xw()}catch(t){window.alert(`Couldn't open project: ${t}`),Ou.set("")}}async function SA(e){if(e.study_area_name){let t=Ma(mg)?`/osm/${e.study_area_name}.pbf`:`https://assets.od2net.org/severance_pbfs/${e.study_area_name}.pbf`;return console.log(`Grabbing ${t}`),await(await fetch(t)).arrayBuffer()}else{console.log("Grabbing from Overpass");let t=e.features.find(r=>r.properties.kind=="study_area_boundary");return await(await fetch(Bw(t))).arrayBuffer()}}function Xw(){kn.set({mode:"network"}),_g.set(new xM(Ma(Kl),Ma(eo).toRouteSnapper(),Ww,tA,Hw)),Ma(Kl).fitBounds(Array.from(Ma(eo).getBounds()),{animate:!1}),Ny.set(Xb()),Oy.set(Xb())}function Xb(){let e=Ma(eo).getBounds(),t=e[0]+Math.random()*(e[2]-e[0]),n=e[1]+Math.random()*(e[3]-e[1]);return new Ig.LngLat(t,n)}function $b(e,t,n){const i=e.slice();return i[19]=t[n],i}function IA(e){let t;return{c(){t=dt("div"),t.innerHTML='',It(t,"slot","top")},m(n,i){vt(n,t,i)},p:Pe,d(n){n&&yt(t)}}}function EA(e){let t;return{c(){t=dt("p"),t.textContent="Waiting for MapLibre and WASM to load..."},m(n,i){vt(n,t,i)},p:Pe,i:Pe,o:Pe,d(n){n&&yt(t)}}}function CA(e){let t,n,i,r,a,h,u,_,w,S,E,M,A;n=new hi({props:{$$slots:{default:[TA]},$$scope:{ctx:e}}}),n.$on("click",e[11]);let D=ps(e[2]),O=[];for(let G=0;Gbt(O[G],1,1,()=>{O[G]=null});return{c(){t=dt("div"),Wt(n.$$.fragment),i=Zt(),r=dt("p"),r.textContent="Load a saved project:",a=Zt(),h=dt("ul");for(let G=0;G{h[S]=null}),qn(),i=h[n],i?i.p(_,w):(i=h[n]=a[n](_),i.c()),ft(i,1),i.m(t,null))},i(_){r||(ft(i),r=!0)},o(_){bt(i),r=!1},d(_){_&&yt(t),h[n].d()}}}function PA(e){let t,n,i,r;return t=new vw({props:{loading:e[1]}}),i=new ju({props:{$$slots:{sidebar:[MA],top:[IA]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment),n=Zt(),Wt(i.$$.fragment)},m(a,h){jt(t,a,h),vt(a,n,h),jt(i,a,h),r=!0},p(a,[h]){const u={};h&2&&(u.loading=a[1]),t.$set(u);const _={};h&4194429&&(_.$$scope={dirty:h,ctx:a}),i.$set(_)},i(a){r||(ft(t.$$.fragment,a),ft(i.$$.fragment,a),r=!0)},o(a){bt(t.$$.fragment,a),bt(i.$$.fragment,a),r=!1},d(a){a&&yt(n),qt(t,a),qt(i,a)}}}function Um(){let e=[];for(let t=0;tn(16,i=pt)),Se(e,_g,pt=>n(17,r=pt)),Se(e,eo,pt=>n(18,a=pt)),Se(e,Kl,pt=>n(4,h=pt)),Se(e,kn,pt=>n(5,u=pt)),Se(e,fd,pt=>n(6,_=pt));let{wasmReady:w}=t,S="";Ke(eo,a=null,a),Ke(_g,r=null,r),Ke(Ou,i="",i);let E=Um(),M;async function A(pt){let st="ltn_"+M.files[0].name;n(1,S=`Loading from file ${st}`),window.localStorage.setItem(st,await M.files[0].text()),n(2,E=Um()),await By(st),n(1,S="")}function D(pt){window.confirm(`Really delete project ${pt}? You can't undo this.`)&&(window.localStorage.removeItem(pt),n(2,E=Um()))}function O(pt){let st=window.prompt(`Rename project ${pt} to what?`,pt);if(st){st.startsWith("ltn_")||(st=`ltn_${st}`);let St=window.localStorage.getItem(pt);window.localStorage.setItem(st,St),window.localStorage.removeItem(pt),n(2,E=Um())}}async function F(pt){n(1,S=`Loading project ${pt}`),await By(pt),n(1,S="")}const G=()=>Ke(kn,u={mode:"new-project"},u),V=pt=>F(pt),Z=pt=>O(pt),$=pt=>D(pt);function Q(pt){zr[pt?"unshift":"push"](()=>{M=pt,n(3,M)})}return e.$$set=pt=>{"wasmReady"in pt&&n(0,w=pt.wasmReady)},[w,S,E,M,h,u,_,A,D,O,F,G,V,Z,$,Q]}class AA extends nn{constructor(t){super(),en(this,t,kA,PA,He,{wasmReady:0})}}function Kb(e,t,n){const i=e.slice();return i[17]=t[n][0],i[18]=t[n][1],i}function Jb(e,t,n){const i=e.slice();return i[21]=t[n][0],i[22]=t[n][1],i}function DA(e){let t;return{c(){t=de("Choose project")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function RA(e){let t,n,i,r,a,h,u,_;return a=new hi({props:{$$slots:{default:[DA]},$$scope:{ctx:e}}}),a.$on("click",e[13]),{c(){t=dt("div"),n=dt("nav"),i=dt("ul"),r=dt("li"),Wt(a.$$.fragment),h=Zt(),u=dt("li"),u.textContent="New project",It(n,"aria-label","breadcrumb"),It(t,"slot","top")},m(w,S){vt(w,t,S),ot(t,n),ot(n,i),ot(i,r),jt(a,r,null),ot(i,h),ot(i,u),_=!0},p(w,S){const E={};S&33554432&&(E.$$scope={dirty:S,ctx:w}),a.$set(E)},i(w){_||(ft(a.$$.fragment,w),_=!0)},o(w){bt(a.$$.fragment,w),_=!1},d(w){w&&yt(t),qt(a)}}}function Qb(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D;t=new vw({props:{loading:e[4]}});let O=ps(e[3]),F=[];for(let G=0;Ge[9].call(a))},m(G,V){jt(t,G,V),vt(G,n,V),vt(G,i,V),ot(i,r),ot(i,a),ot(a,h);for(let Z=0;Z{S=null}),qn())},i(E){u||(ft(S),u=!0)},o(E){bt(S),u=!1},d(E){E&&yt(t),S&&S.d(),_=!1,w()}}}function OA(e){let t,n,i;return n=new HL({}),{c(){t=dt("div"),Wt(n.$$.fragment),It(t,"slot","map")},m(r,a){vt(r,t,a),jt(n,t,null),i=!0},p:Pe,i(r){i||(ft(n.$$.fragment,r),i=!0)},o(r){bt(n.$$.fragment,r),i=!1},d(r){r&&yt(t),qt(n)}}}function zA(e){let t,n;return t=new ju({props:{$$slots:{map:[OA],sidebar:[NA],top:[RA]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,[r]){const a={};r&33554558&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function FA(e,t,n){let i,r,a,h,u;Se(e,Ou,$=>n(14,i=$)),Se(e,eo,$=>n(15,r=$)),Se(e,mg,$=>n(16,a=$)),Se(e,Kl,$=>n(5,h=$)),Se(e,kn,$=>n(6,u=$));let _="",w="",S=[],E="";Sg(async()=>{let $=await fetch(a?"/osm/areas.json":"https://assets.od2net.org/severance_pbfs/areas.json");n(3,S=await $.json())});function M($){n(4,E="Loading OSM");try{Ke(eo,r=new Gw(new TextEncoder().encode($.detail),void 0),r),Ke(Ou,i=`ltn_${_}`,i),Xw(),pd()}catch(Q){window.alert(`Couldn't import from Overpass: ${Q}`)}n(4,E="")}async function A(){if(w=="")return;let $=`ltn_${_}`;window.localStorage.setItem($,JSON.stringify({type:"FeatureCollection",features:[],study_area_name:w})),n(4,E=`Loading pre-clipped OSM area ${w}`),await By($),n(4,E="")}function D(){_=this.value,n(1,_)}function O(){w=ax(this),n(2,w),n(3,S)}return[A,_,w,S,E,h,u,M,D,O,()=>A(),$=>n(4,E=$.detail),$=>window.alert($.detail),()=>Ke(kn,u={mode:"title"},u)]}class BA extends nn{constructor(t){super(),en(this,t,FA,zA,He,{loadExample:0})}get loadExample(){return this.$$.ctx[0]}}const{window:VA}=Vy;function UA(e){let t;return{c(){t=de("Choose project")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function GA(e){let t;return{c(){t=de("Pick neighbourhood")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function jA(e){let t;return{c(){t=de("Editing")},m(n,i){vt(n,t,i)},d(n){n&&yt(t)}}}function qA(e){let t,n,i,r,a,h,u,_,w,S,E,M,A,D;return a=new hi({props:{$$slots:{default:[UA]},$$scope:{ctx:e}}}),a.$on("click",e[9]),_=new hi({props:{$$slots:{default:[GA]},$$scope:{ctx:e}}}),_.$on("click",e[10]),E=new hi({props:{$$slots:{default:[jA]},$$scope:{ctx:e}}}),E.$on("click",e[5]),{c(){t=dt("div"),n=dt("nav"),i=dt("ul"),r=dt("li"),Wt(a.$$.fragment),h=Zt(),u=dt("li"),Wt(_.$$.fragment),w=Zt(),S=dt("li"),Wt(E.$$.fragment),M=Zt(),A=dt("li"),A.textContent="Viewing shortcuts",It(n,"aria-label","breadcrumb"),It(t,"slot","top")},m(O,F){vt(O,t,F),ot(t,n),ot(n,i),ot(i,r),jt(a,r,null),ot(i,h),ot(i,u),jt(_,u,null),ot(i,w),ot(i,S),jt(E,S,null),ot(i,M),ot(i,A),D=!0},p(O,F){const G={};F&8192&&(G.$$scope={dirty:F,ctx:O}),a.$set(G);const V={};F&8192&&(V.$$scope={dirty:F,ctx:O}),_.$set(V);const Z={};F&8192&&(Z.$$scope={dirty:F,ctx:O}),E.$set(Z)},i(O){D||(ft(a.$$.fragment,O),ft(_.$$.fragment,O),ft(E.$$.fragment,O),D=!0)},o(O){bt(a.$$.fragment,O),bt(_.$$.fragment,O),bt(E.$$.fragment,O),D=!1},d(O){O&&yt(t),qt(a),qt(_),qt(E)}}}function ZA(e){let t,n,i,r,a,h,u,_,w,S=e[0].shortcutIndex+1+"",E,M,A=e[0].gj.features.length+"",D,O,F,G,V,Z,$,Q,pt,st=Ti(e[0].gj.features[e[0].shortcutIndex].properties).directness.toFixed(1)+"",St,ut,kt,mt,Et;return{c(){t=dt("p"),t.textContent=`This shows all possible shortcuts crossing the blue road you've chosen. - A shortcut is defined as a route starting and ending outside the - neighbourhood, but cutting through it. It might not actually be - considered a "good shortcut" in practice -- this tool doesn't know any - real traffic patterns; it's just looking for any possible path. This - view lets you understand the limits of this assumption.`,n=Zt(),i=dt("button"),i.textContent="Pick a different road",r=Zt(),a=dt("div"),h=dt("button"),u=de("Previous"),w=Zt(),E=de(S),M=de(" / "),D=de(A),O=Zt(),F=dt("button"),G=de("Next"),Z=Zt(),$=dt("p"),Q=de("This shortcut is "),pt=dt("b"),St=de(st),ut=de("x"),kt=de(` - the length of the shortest route using all roads, not just this neighbourhood`),h.disabled=_=e[0].shortcutIndex==0,It(h,"data-tooltip","Left"),F.disabled=V=e[0].shortcutIndex==e[0].gj.features.length-1,It(F,"data-tooltip","Right"),ei(a,"display","flex"),ei(a,"justify-content","space-between")},m(te,Pt){vt(te,t,Pt),vt(te,n,Pt),vt(te,i,Pt),vt(te,r,Pt),vt(te,a,Pt),ot(a,h),ot(h,u),ot(a,w),ot(a,E),ot(a,M),ot(a,D),ot(a,O),ot(a,F),ot(F,G),vt(te,Z,Pt),vt(te,$,Pt),ot($,Q),ot($,pt),ot(pt,St),ot(pt,ut),ot($,kt),mt||(Et=[Le(i,"click",e[8]),Le(h,"click",e[6]),Le(F,"click",e[7])],mt=!0)},p(te,Pt){Pt&1&&_!==(_=te[0].shortcutIndex==0)&&(h.disabled=_),Pt&1&&S!==(S=te[0].shortcutIndex+1+"")&&fi(E,S),Pt&1&&A!==(A=te[0].gj.features.length+"")&&fi(D,A),Pt&1&&V!==(V=te[0].shortcutIndex==te[0].gj.features.length-1)&&(F.disabled=V),Pt&1&&st!==(st=Ti(te[0].gj.features[te[0].shortcutIndex].properties).directness.toFixed(1)+"")&&fi(St,st)},d(te){te&&(yt(t),yt(n),yt(i),yt(r),yt(a),yt(Z),yt($)),mt=!1,Ji(Et)}}}function WA(e){let t;return{c(){t=dt("p"),t.textContent="Click a road to see shortcuts"},m(n,i){vt(n,t,i)},p:Pe,d(n){n&&yt(t)}}}function HA(e){let t,n,i,r;n=new y0({}),n.$on("click",e[5]);function a(_,w){if(_[0].state=="neutral")return WA;if(_[0].state=="chose-road")return ZA}let h=a(e),u=h&&h(e);return{c(){t=dt("div"),Wt(n.$$.fragment),i=Zt(),u&&u.c(),It(t,"slot","sidebar")},m(_,w){vt(_,t,w),jt(n,t,null),ot(t,i),u&&u.m(t,null),r=!0},p(_,w){h===(h=a(_))&&u?u.p(_,w):(u&&u.d(1),u=h&&h(_),u&&(u.c(),u.m(t,null)))},i(_){r||(ft(n.$$.fragment,_),r=!0)},o(_){bt(n.$$.fragment,_),r=!1},d(_){_&&yt(t),qt(n),u&&u.d()}}}function XA(e){let t,n,i,r,a,h;return t=new $o({props:{data:Fy(JSON.parse(Ti(e[2]).renderNeighbourhood())),$$slots:{default:[YA]},$$scope:{ctx:e}}}),i=new $o({props:{data:e[0].gj.features[e[0].shortcutIndex],$$slots:{default:[KA]},$$scope:{ctx:e}}}),a=new $o({props:{data:e[0].roadGj,$$slots:{default:[JA]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment),n=Zt(),Wt(i.$$.fragment),r=Zt(),Wt(a.$$.fragment)},m(u,_){jt(t,u,_),vt(u,n,_),jt(i,u,_),vt(u,r,_),jt(a,u,_),h=!0},p(u,_){const w={};_&4&&(w.data=Fy(JSON.parse(Ti(u[2]).renderNeighbourhood()))),_&8192&&(w.$$scope={dirty:_,ctx:u}),t.$set(w);const S={};_&1&&(S.data=u[0].gj.features[u[0].shortcutIndex]),_&8192&&(S.$$scope={dirty:_,ctx:u}),i.$set(S);const E={};_&1&&(E.data=u[0].roadGj),_&8192&&(E.$$scope={dirty:_,ctx:u}),a.$set(E)},i(u){h||(ft(t.$$.fragment,u),ft(i.$$.fragment,u),ft(a.$$.fragment,u),h=!0)},o(u){bt(t.$$.fragment,u),bt(i.$$.fragment,u),bt(a.$$.fragment,u),h=!1},d(u){u&&(yt(n),yt(r)),qt(t,u),qt(i,u),qt(a,u)}}}function $A(e){let t,n;return t=new jg({props:{gjInput:JSON.parse(Ti(e[2]).renderNeighbourhood()),onClickLine:e[3],$$slots:{"line-popup":[t4]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&4&&(a.gjInput=JSON.parse(Ti(i[2]).renderNeighbourhood())),r&8192&&(a.$$scope={dirty:r,ctx:i}),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function YA(e){let t,n;const i=[Fr("cells"),{filter:["==",["get","kind"],"cell"]},{paint:{"fill-color":["get","color"],"fill-opacity":.3}}];let r={};for(let a=0;a({12:r}),({props:r})=>r?4096:0]},$$scope:{ctx:e}}}),{c(){t=dt("div"),Wt(n.$$.fragment),It(t,"slot","line-popup")},m(r,a){vt(r,t,a),jt(n,t,null),i=!0},p(r,a){const h={};a&12288&&(h.$$scope={dirty:a,ctx:r}),n.$set(h)},i(r){i||(ft(n.$$.fragment,r),i=!0)},o(r){bt(n.$$.fragment,r),i=!1},d(r){r&&yt(t),qt(n)}}}function e4(e){let t,n,i,r,a,h;const u=[$A,XA],_=[];function w(S,E){return S[0].state=="neutral"?0:S[0].state=="chose-road"?1:-1}return~(n=w(e))&&(i=_[n]=u[n](e)),a=new qg({}),{c(){t=dt("div"),i&&i.c(),r=Zt(),Wt(a.$$.fragment),It(t,"slot","map")},m(S,E){vt(S,t,E),~n&&_[n].m(t,null),ot(t,r),jt(a,t,null),h=!0},p(S,E){let M=n;n=w(S),n===M?~n&&_[n].p(S,E):(i&&(jn(),bt(_[M],1,1,()=>{_[M]=null}),qn()),~n?(i=_[n],i?i.p(S,E):(i=_[n]=u[n](S),i.c()),ft(i,1),i.m(t,r)):i=null)},i(S){h||(ft(i),ft(a.$$.fragment,S),h=!0)},o(S){bt(i),bt(a.$$.fragment,S),h=!1},d(S){S&&yt(t),~n&&_[n].d(),qt(a)}}}function n4(e){let t,n,i,r;return t=new ju({props:{$$slots:{map:[e4],sidebar:[HA],top:[qA]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment)},m(a,h){jt(t,a,h),n=!0,i||(r=Le(VA,"keydown",e[4]),i=!0)},p(a,[h]){const u={};h&8199&&(u.$$scope={dirty:h,ctx:a}),t.$set(u)},i(a){n||(ft(t.$$.fragment,a),n=!0)},o(a){bt(t.$$.fragment,a),n=!1},d(a){qt(t,a),i=!1,r()}}}function i4(e,t,n){let i,r,a;Se(e,kn,O=>n(1,i=O)),Se(e,Kl,O=>n(11,r=O)),Se(e,eo,O=>n(2,a=O));let h={state:"neutral"};function u(O,F){let G=JSON.parse(a.getShortcutsCrossingRoad(O.properties.id));if(G.features.length==0){window.alert("No shortcuts here");return}n(0,h={state:"chose-road",roadGj:O,gj:G,shortcutIndex:0})}Sg(()=>{r==null||r.keyboard.disable()}),fs(()=>{r==null||r.keyboard.enable()});function _(O){h.state=="chose-road"&&(O.key=="ArrowLeft"&&h.shortcutIndex>0&&(O.stopPropagation(),n(0,h.shortcutIndex--,h)),O.key=="ArrowRight"&&(O.stopPropagation(),h.shortcutIndex!=h.gj.features.length-1&&n(0,h.shortcutIndex++,h)))}function w(){Ke(kn,i={mode:"neighbourhood"},i)}function S(){h.state=="chose-road"&&n(0,h.shortcutIndex--,h)}function E(){h.state=="chose-road"&&n(0,h.shortcutIndex++,h)}return[h,i,a,u,_,w,S,E,()=>n(0,h={state:"neutral"}),()=>Ke(kn,i={mode:"title"},i),()=>Ke(kn,i={mode:"network"},i)]}class r4 extends nn{constructor(t){super(),en(this,t,i4,n4,He,{})}}function o4(e){let t,n,i,r,a,h,u,_,w,S,E;return h=new Qk({}),{c(){t=dt("div"),n=dt("button"),i=dt("img"),a=Zt(),Wt(h.$$.fragment),u=Zt(),_=dt("span"),Bn(i.src,r=e[10]?bb:xb)||It(i,"src",r),ei(i,"height","6vh"),It(i,"alt","A/B Street logo"),It(n,"class","outline"),ei(_,"width","100%"),It(t,"slot","top"),ei(t,"display","flex")},m(M,A){vt(M,t,A),ot(t,n),ot(n,i),ot(t,a),jt(h,t,null),ot(t,u),ot(t,_),e[20](_),w=!0,S||(E=Le(n,"click",e[19]),S=!0)},p(M,A){(!w||A&1024&&!Bn(i.src,r=M[10]?bb:xb))&&It(i,"src",r)},i(M){w||(ft(h.$$.fragment,M),w=!0)},o(M){bt(h.$$.fragment,M),w=!1},d(M){M&&yt(t),qt(h),e[20](null),S=!1,E()}}}function nx(e){let t,n,i,r,a,h;return i=new QM({props:{map:Ti(e[6]),maptilerBasemap:e[7]}}),{c(){t=dt("button"),t.textContent="Zoom to fit study area",n=Zt(),Wt(i.$$.fragment),It(t,"class","secondary")},m(u,_){vt(u,t,_),vt(u,n,_),jt(i,u,_),r=!0,a||(h=Le(t,"click",e[11]),a=!0)},p(u,_){const w={};_&64&&(w.map=Ti(u[6])),_&128&&(w.maptilerBasemap=u[7]),i.$set(w)},i(u){r||(ft(i.$$.fragment,u),r=!0)},o(u){bt(i.$$.fragment,u),r=!1},d(u){u&&(yt(t),yt(n)),qt(i,u),a=!1,h()}}}function s4(e){let t,n,i,r,a,h,u=e[5]&&nx(e);return{c(){t=dt("div"),n=dt("div"),i=Zt(),r=dt("hr"),a=Zt(),u&&u.c(),It(t,"slot","left")},m(_,w){vt(_,t,w),ot(t,n),e[18](n),ot(t,i),ot(t,r),ot(t,a),u&&u.m(t,null),h=!0},p(_,w){_[5]?u?(u.p(_,w),w&32&&ft(u,1)):(u=nx(_),u.c(),ft(u,1),u.m(t,null)):u&&(jn(),bt(u,1,1,()=>{u=null}),qn())},i(_){h||(ft(u),h=!0)},o(_){bt(u),h=!1},d(_){_&&yt(t),e[18](null),u&&u.d()}}}function a4(e){let t,n;return t=new BA({}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p:Pe,i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function l4(e){let t,n;return t=new AA({props:{wasmReady:e[4]}}),{c(){Wt(t.$$.fragment)},m(i,r){jt(t,i,r),n=!0},p(i,r){const a={};r&16&&(a.wasmReady=i[4]),t.$set(a)},i(i){n||(ft(t.$$.fragment,i),n=!0)},o(i){bt(t.$$.fragment,i),n=!1},d(i){qt(t,i)}}}function ix(e){let t,n,i,r,a,h;t=new $o({props:{data:JSON.parse(e[5].getInvertedBoundary()),$$slots:{default:[u4]},$$scope:{ctx:e}}});const u=[m4,d4,p4,f4,h4,c4],_=[];function w(S,E){return S[8].mode=="network"?0:S[8].mode=="set-boundary"?1:S[8].mode=="neighbourhood"?2:S[8].mode=="view-shortcuts"?3:S[8].mode=="route"?4:S[8].mode=="debug"?5:-1}return~(i=w(e))&&(r=_[i]=u[i](e)),{c(){Wt(t.$$.fragment),n=Zt(),r&&r.c(),a=Ao()},m(S,E){jt(t,S,E),vt(S,n,E),~i&&_[i].m(S,E),vt(S,a,E),h=!0},p(S,E){const M={};E&32&&(M.data=JSON.parse(S[5].getInvertedBoundary())),E&4194304&&(M.$$scope={dirty:E,ctx:S}),t.$set(M);let A=i;i=w(S),i===A?~i&&_[i].p(S,E):(r&&(jn(),bt(_[A],1,1,()=>{_[A]=null}),qn()),~i?(r=_[i],r?r.p(S,E):(r=_[i]=u[i](S),r.c()),ft(r,1),r.m(a.parentNode,a)):r=null)},i(S){h||(ft(t.$$.fragment,S),ft(r),h=!0)},o(S){bt(t.$$.fragment,S),bt(r),h=!1},d(S){S&&(yt(n),yt(a)),qt(t,S),~i&&_[i].d(S)}}}function u4(e){let t,n;const i=[Fr("boundary"),{paint:{"fill-color":"black","fill-opacity":.3}}];let r={};for(let a=0;a{M[V]=null}),qn()),~a?(h=M[a],h?h.p(O,F):(h=M[a]=E[a](O),h.c()),ft(h,1),h.m(u.parentNode,u)):h=null),O[5]?D?(D.p(O,F),F&32&&ft(D,1)):(D=ix(O),D.c(),ft(D,1),D.m(_.parentNode,_)):D&&(jn(),bt(D,1,1,()=>{D=null}),qn())},i(O){S||(ft(t.$$.fragment,O),ft(h),ft(D),ft(w.$$.fragment,O),S=!0)},o(O){bt(t.$$.fragment,O),bt(h),bt(D),bt(w.$$.fragment,O),S=!1},d(O){O&&(yt(n),yt(i),yt(r),yt(u),yt(_)),qt(t,O),e[15](null),~a&&M[a].d(O),D&&D.d(O),qt(w,O)}}}function _4(e){let t,n,i,r;function a(u){e[16](u)}let h={style:`https://api.maptiler.com/maps/${e[7]}/style.json?key=${Py}`,standardControls:!0,hash:!0,images:[{id:"walk_cycle_only",url:"/ltn//filters/walk_cycle_only_icon.gif"},{id:"no_entry",url:"/ltn//filters/no_entry_icon.gif"},{id:"bus_gate",url:"/ltn//filters/bus_gate_icon.gif"},{id:"school_street",url:"/ltn//filters/school_street_icon.gif"},{id:"oneway-arrow",url:CM}],$$slots:{default:[g4]},$$scope:{ctx:e}};return e[0]!==void 0&&(h.map=e[0]),n=new SL({props:h}),zr.push(()=>vc(n,"map",a)),n.$on("error",e[17]),{c(){t=dt("div"),Wt(n.$$.fragment),It(t,"slot","main"),ei(t,"position","relative"),ei(t,"width","100%"),ei(t,"height","100%")},m(u,_){vt(u,t,_),jt(n,t,null),r=!0},p(u,_){const w={};_&128&&(w.style=`https://api.maptiler.com/maps/${u[7]}/style.json?key=${Py}`),_&4194617&&(w.$$scope={dirty:_,ctx:u}),!i&&_&1&&(i=!0,w.map=u[0],yc(()=>i=!1)),n.$set(w)},i(u){r||(ft(n.$$.fragment,u),r=!0)},o(u){bt(n.$$.fragment,u),r=!1},d(u){u&&yt(t),qt(n)}}}function y4(e){let t,n,i,r;return t=new EM({}),i=new BM({props:{$$slots:{main:[_4],left:[s4],top:[o4]},$$scope:{ctx:e}}}),{c(){Wt(t.$$.fragment),n=Zt(),Wt(i.$$.fragment)},m(a,h){jt(t,a,h),vt(a,n,h),jt(i,a,h),r=!0},p(a,[h]){const u={};h&4196351&&(u.$$scope={dirty:h,ctx:a}),i.$set(u)},i(a){r||(ft(t.$$.fragment,a),ft(i.$$.fragment,a),r=!0)},o(a){bt(t.$$.fragment,a),bt(i.$$.fragment,a),r=!1},d(a){a&&yt(n),qt(t,a),qt(i,a)}}}function v4(e,t,n){let i,r,a,h,u,_,w,S,E,M;Se(e,Ry,ut=>n(12,i=ut)),Se(e,Dy,ut=>n(13,r=ut)),Se(e,Ay,ut=>n(14,a=ut)),Se(e,eo,ut=>n(5,h=ut)),Se(e,Kl,ut=>n(6,u=ut)),Se(e,mg,ut=>n(21,_=ut)),Se(e,ky,ut=>n(7,w=ut)),Se(e,kn,ut=>n(8,S=ut)),Se(e,gg,ut=>n(9,E=ut)),Se(e,fd,ut=>n(10,M=ut));let A=!1;Sg(async()=>{await jw(),await Zw(),n(4,A=!0);try{(await fetch("/osm/areas.json")).ok&&(Ke(mg,_=!0,_),console.log("Using local cache, not od2net.org"))}catch{}});let D;function O(){u.fitBounds(Array.from(h.getBounds()),{animate:!1})}let F,G,V;function Z(ut){zr[ut?"unshift":"push"](()=>{V=ut,n(3,V),n(12,i)})}function $(ut){D=ut,n(0,D)}const Q=ut=>{console.log(ut.detail.error)};function pt(ut){zr[ut?"unshift":"push"](()=>{G=ut,n(2,G),n(13,r)})}const st=()=>Ke(gg,E=!0,E);function St(ut){zr[ut?"unshift":"push"](()=>{F=ut,n(1,F),n(14,a)})}return e.$$.update=()=>{e.$$.dirty&1&&D&&Kl.set(D),e.$$.dirty&16386&&F&&a&&(n(1,F.innerHTML="",F),F.appendChild(a)),e.$$.dirty&8196&&G&&r&&(n(2,G.innerHTML="",G),G.appendChild(r)),e.$$.dirty&4104&&V&&i&&(n(3,V.innerHTML="",V),V.appendChild(i))},[D,F,G,V,A,h,u,w,S,E,M,O,i,r,a,Z,$,Q,pt,st,St]}class b4 extends nn{constructor(t){super(),en(this,t,v4,y4,He,{})}}new b4({target:document.getElementById("app")}); diff --git a/index.html b/index.html index 0f7b5aa..4662778 100644 --- a/index.html +++ b/index.html @@ -4,8 +4,8 @@ LTN from scratch - - + +